diff --git a/src/main/java/com/glxp/api/controller/basic/UdiProductController.java b/src/main/java/com/glxp/api/controller/basic/UdiProductController.java index 8af7daa..9f882da 100644 --- a/src/main/java/com/glxp/api/controller/basic/UdiProductController.java +++ b/src/main/java/com/glxp/api/controller/basic/UdiProductController.java @@ -6,13 +6,15 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageInfo; import com.glxp.api.annotation.AuthRuleAnnotation; +import com.glxp.api.annotation.Log; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.constant.AsyncDiDlHelper; +import com.glxp.api.constant.BusinessType; +import com.glxp.api.constant.ConstantStatus; import com.glxp.api.controller.BaseController; -import com.glxp.api.entity.basic.BasicUdiProductEntity; -import com.glxp.api.entity.basic.ProductInfoEntity; -import com.glxp.api.entity.basic.UdiCompanyEntity; -import com.glxp.api.entity.basic.UdiEntity; +import com.glxp.api.entity.basic.*; +import com.glxp.api.http.NmpaUdiClient; import com.glxp.api.req.basic.*; import com.glxp.api.req.system.DeleteRequest; import com.glxp.api.res.PageSimpleResponse; @@ -20,6 +22,7 @@ import com.glxp.api.res.trace.TraceManuCodeRellResponse; import com.glxp.api.service.basic.BasicUdiProductService; import com.glxp.api.service.basic.ProductInfoService; import com.glxp.api.util.udi.FilterUdiUtils; +import com.glxp.api.util.udi.UdiInfoUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -47,7 +50,7 @@ public class UdiProductController extends BaseController { //获取同步库UDI信息 - @ApiOperation(value = "获取同步库UDI信息",response = BasicUdiProductEntity.class) + @ApiOperation(value = "获取同步库UDI信息", response = BasicUdiProductEntity.class) @AuthRuleAnnotation("") @ApiIgnore @GetMapping("udi/basic/dict/filter") @@ -78,7 +81,7 @@ public class UdiProductController extends BaseController { //医疗器械信息字典编辑保存 @AuthRuleAnnotation("") - @ApiOperation(value = "添加医疗器械信息字典",response = BaseResponse.class) + @ApiOperation(value = "添加医疗器械信息字典", response = BaseResponse.class) @PostMapping("udi/basic/dict/add") public BaseResponse addDict(@RequestBody BasicDictSelectRequest basicDictSelectRequest) { @@ -100,7 +103,7 @@ public class UdiProductController extends BaseController { @AuthRuleAnnotation("") - @ApiOperation(value = "删除医疗器械信息字典",response = BaseResponse.class) + @ApiOperation(value = "删除医疗器械信息字典", response = BaseResponse.class) @PostMapping("udi/basic/dict/delete") public BaseResponse addDict(@RequestBody DeleteRequest deleteRequest) { if (StrUtil.isEmpty(deleteRequest.getUuid())) { @@ -113,7 +116,7 @@ public class UdiProductController extends BaseController { //医疗器械信息字典编辑保存 @AuthRuleAnnotation("") - @ApiOperation(value = "添加UDI产品信息",response = BaseResponse.class) + @ApiOperation(value = "添加UDI产品信息", response = BaseResponse.class) @PostMapping("udi/basic/dict/batchAdd") public BaseResponse batchAdd(@RequestBody BasicDictSelectRequest basicDictSelectRequest) { @@ -139,7 +142,7 @@ public class UdiProductController extends BaseController { } //医疗器械信息字典编辑保存 - @ApiOperation(value = "医疗器械信息字典编辑",response = BaseResponse.class) + @ApiOperation(value = "医疗器械信息字典编辑", response = BaseResponse.class) @AuthRuleAnnotation("") @PostMapping("udi/basic/dict/edit") public BaseResponse editDict(@RequestBody BasicUdiProductEntity basicUdiProductEntity) { @@ -150,7 +153,7 @@ public class UdiProductController extends BaseController { @AuthRuleAnnotation("") - @ApiOperation(value = "获取UDI医疗器械信息字典",response = BasicUdiProductEntity.class) + @ApiOperation(value = "获取UDI医疗器械信息字典", response = BasicUdiProductEntity.class) @GetMapping("udi/basic/dict/filterylqxzcrbarmc") public BaseResponse filterylqxzcrbarmc(BasicUdiProductRequest basicUdiProductRequest) { @@ -163,7 +166,7 @@ public class UdiProductController extends BaseController { } @AuthRuleAnnotation("") - @ApiOperation(value = "根据产品名称获取UDI医疗器械信息字典",response = BasicUdiProductEntity.class) + @ApiOperation(value = "根据产品名称获取UDI医疗器械信息字典", response = BasicUdiProductEntity.class) @GetMapping("udi/basic/dict/filterCpmctymc") public BaseResponse filterCpmctymc(BasicUdiProductRequest basicUdiProductRequest) { @@ -176,7 +179,7 @@ public class UdiProductController extends BaseController { } @AuthRuleAnnotation("") - @ApiOperation(value = "根据规格型号获取UDI医疗器械信息字典",response = BasicUdiProductEntity.class) + @ApiOperation(value = "根据规格型号获取UDI医疗器械信息字典", response = BasicUdiProductEntity.class) @GetMapping("udi/basic/dict/filterGgxh") public BaseResponse filterGgxh(BasicUdiProductRequest basicUdiProductRequest) { @@ -189,7 +192,7 @@ public class UdiProductController extends BaseController { } @AuthRuleAnnotation("") - @ApiOperation(value = "根据DI标识获取UDI医疗器械信息字典",response = BasicUdiProductEntity.class) + @ApiOperation(value = "根据DI标识获取UDI医疗器械信息字典", response = BasicUdiProductEntity.class) @GetMapping("udi/basic/dict/filterNameCode") public BaseResponse filterNameCode(BasicUdiProductRequest basicUdiProductRequest) { @@ -201,6 +204,40 @@ public class UdiProductController extends BaseController { return ResultVOUtils.success(pageSimpleResponse); } + @Resource + NmpaUdiClient udiDlHttpClient; + @Resource + AsyncDiDlHelper asyncDiDlHelper; + + /** + * 切换耗材字典版本号 + */ + @AuthRuleAnnotation("") + @PostMapping("/udi/udirel/syncOnline") + @Log(title = "耗材字典", businessType = BusinessType.UPDATE) + public BaseResponse syncOnline(@RequestBody UdiCombineRequest udiCombineRequest) { + List udiInfoEntities = udiDlHttpClient.getUdiByUuid(udiCombineRequest.getOriginUuid()); + if (CollUtil.isNotEmpty(udiInfoEntities)) { + BaseResponse> listBaseResponse = asyncDiDlHelper.dlLastVersionByDi(udiInfoEntities.get(0).getNameCode()); + if (listBaseResponse.getCode() == 20000) { + List productInfoEntityList = listBaseResponse.getData(); + if (CollUtil.isNotEmpty(productInfoEntityList)) { + productInfoService.insertProductInfos(productInfoEntityList); + } + } + udiInfoEntities = udiDlHttpClient.getUdiByUuid(udiCombineRequest.getOriginUuid()); + basicUdiProductService.deleteByUuid(udiCombineRequest.getUuid()); + for (BasicUdiProductEntity udiProductEntity : udiInfoEntities) { + udiProductEntity.setUuid(udiCombineRequest.getUuid()); + udiProductEntity.setUpdateTime(new Date()); + udiProductEntity.setId(IdUtil.getSnowflakeNextId()); + } + basicUdiProductService.saveBatch(UdiInfoUtil.initUdiInfoEntitys(udiInfoEntities)); + return ResultVOUtils.success("更新成功!"); + } else { + return ResultVOUtils.error(500, "更新失败!"); + } + } } diff --git a/src/main/java/com/glxp/api/controller/trace/TestController.java b/src/main/java/com/glxp/api/controller/trace/TestController.java index 30ad54b..23a2e5e 100644 --- a/src/main/java/com/glxp/api/controller/trace/TestController.java +++ b/src/main/java/com/glxp/api/controller/trace/TestController.java @@ -1,30 +1,33 @@ package com.glxp.api.controller.trace; import cn.hutool.core.lang.UUID; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; +import com.glxp.api.annotation.Log; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.config.rabbit.TopicRabbitConfig; +import com.glxp.api.constant.BusinessType; import com.glxp.api.entity.trace.MqTraceMessage; import com.glxp.api.service.trace.RabbitQueueService; import com.glxp.api.util.DateUtil; -import com.glxp.api.util.udi.FilterUdiUtils; +import com.glxp.api.util.IDCUtils; import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.rabbit.core.RabbitTemplate; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; +import java.io.File; import java.util.Date; import java.util.HashMap; +import java.util.List; import java.util.Map; @Api(tags = "测试相关接口") +@Slf4j @RestController @RequiredArgsConstructor public class TestController { @@ -78,5 +81,32 @@ public class TestController { } + @PostMapping("/test/file/uplaod") + @Log(title = "测试上传数据", businessType = BusinessType.INSERT) + public BaseResponse uploadProducts(@RequestParam("file") List files, @RequestParam("key") String key) { + if (StrUtil.isEmpty(key) || !key.equals("glxp6666")) { + return ResultVOUtils.error(500, "key不能为空"); + } + String filePath = "D:\\udiwms\\testFile\\"; + File createFile = new File(filePath); + if (!createFile.exists()) { + createFile.mkdirs(); + } + for (int i = 0; i < files.size(); i++) { + MultipartFile file = files.get(i); + if (file.isEmpty()) { + return ResultVOUtils.error(500, "上传第" + (i++) + "个文件失败"); + } + String fileName = file.getOriginalFilename(); + try { + IDCUtils.writeFile(file.getBytes(), filePath + file.getName(), file.getOriginalFilename()); + } catch (Exception e) { + log.error("产品信息导入失败", e); + } + } + return ResultVOUtils.success("上传成功"); + } + + } diff --git a/src/main/java/com/glxp/api/entity/trace/TraceOrderEntity.java b/src/main/java/com/glxp/api/entity/trace/TraceOrderEntity.java index a9cff7a..75ce572 100644 --- a/src/main/java/com/glxp/api/entity/trace/TraceOrderEntity.java +++ b/src/main/java/com/glxp/api/entity/trace/TraceOrderEntity.java @@ -197,7 +197,9 @@ public class TraceOrderEntity implements Serializable { @TableField(value = "recordCode") private String recordCode; - + @ApiModelProperty(value = "数量") + @TableField(value = "count") + private Integer count; private static final long serialVersionUID = 1L; diff --git a/src/main/java/com/glxp/api/http/NmpaUdiClient.java b/src/main/java/com/glxp/api/http/NmpaUdiClient.java new file mode 100644 index 0000000..540ae86 --- /dev/null +++ b/src/main/java/com/glxp/api/http/NmpaUdiClient.java @@ -0,0 +1,78 @@ +package com.glxp.api.http; + +import com.glxp.api.constant.ConstantStatus; +import com.glxp.api.entity.basic.BasicUdiProductEntity; +import com.glxp.api.entity.basic.ProductInfoEntity; +import com.glxp.api.entity.basic.UdiProductEntity; +import com.glxp.api.req.basic.ProductInfoFilterRequest; +import com.glxp.api.service.basic.ProductInfoService; +import com.glxp.api.service.basic.UdiProductService; +import com.glxp.api.util.UuidUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 获取国家UDI同步库信息(nmpa:国家药品监督管理局) + */ +@Service +public class NmpaUdiClient { + @Resource + ProductInfoService productInfoService; + @Resource + UdiProductService udiProductService; + + public List getUdiByUuid(String uuid) { + ProductInfoFilterRequest productInfoFilterRequest = new ProductInfoFilterRequest(); + productInfoFilterRequest.setPage(1); + productInfoFilterRequest.setLimit(100); + productInfoFilterRequest.setUuid(uuid); + + List productInfoEntityList = productInfoService.findAll(productInfoFilterRequest); + List udiInfoEntities = new ArrayList<>(); + for (ProductInfoEntity productInfoEntity : productInfoEntityList) { + BasicUdiProductEntity udiProductEntity = new BasicUdiProductEntity(); + BeanUtils.copyProperties(productInfoEntity, udiProductEntity); + udiProductEntity.setQxlb(productInfoEntity.getCplx()); + udiProductEntity.setCplb(productInfoEntity.getHchzsb()); + udiInfoEntities.add(udiProductEntity); + } + return udiInfoEntities; + } + + + public List getUdiByDi(String key) { + ProductInfoFilterRequest productInfoFilterRequest = new ProductInfoFilterRequest(); + productInfoFilterRequest.setPage(1); + productInfoFilterRequest.setLimit(100); + productInfoFilterRequest.setNameCode(key); + + List productInfoEntityList = productInfoService.findAll(productInfoFilterRequest); + Map> listMap = productInfoEntityList.stream().collect(Collectors.groupingBy(ProductInfoEntity::getUuid)); + List result = null; + for (List value : listMap.values()) { + if (result == null || value.get(0).getVersionNumber() > result.get(0).getVersionNumber()) { + result = value; + } + } + productInfoFilterRequest.setNameCode(null); + productInfoFilterRequest.setUuid(result.get(0).getUuid()); + List datas = productInfoService.findAll(productInfoFilterRequest); + List udiInfoEntities = new ArrayList<>(); + for (ProductInfoEntity productInfoEntity : datas) { + UdiProductEntity udiProductEntity = new UdiProductEntity(); + BeanUtils.copyProperties(productInfoEntity, udiProductEntity); + udiProductEntity.setQxlb(productInfoEntity.getCplx()); + udiProductEntity.setCplb(productInfoEntity.getHchzsb()); + udiProductEntity.setProductType(ConstantStatus.PRODUCT_TYPE_UDI); + udiInfoEntities.add(udiProductEntity); + } + return udiInfoEntities; + + } +} diff --git a/src/main/java/com/glxp/api/req/basic/UdiCombineRequest.java b/src/main/java/com/glxp/api/req/basic/UdiCombineRequest.java new file mode 100644 index 0000000..c612224 --- /dev/null +++ b/src/main/java/com/glxp/api/req/basic/UdiCombineRequest.java @@ -0,0 +1,35 @@ +package com.glxp.api.req.basic; + +import com.glxp.api.req.thrsys.FilterThrProductsRequest; +import com.glxp.api.res.thrsys.ThrProductsResponse; +import lombok.Data; + +import java.util.List; + +@Data +public class UdiCombineRequest { + + List keys; + private String thirdId; + private List thirdIds; + private String erpName; + private ThrProductsResponse erpProductsResponse; + private Long relId; + private String thirdSys; + private Boolean isRlInv; + private FilterThrProductsRequest query; + private String erpId; + private Long customerId; + private Boolean supEnable; + private String manufactory; + private String measname; + private String supName; + private String price; + private boolean idSpliUdi; + private String uuid; + private String originUuid; + + + private String ybbm; + private String sptm; +} diff --git a/src/main/java/com/glxp/api/res/trace/TraceOrderResponse.java b/src/main/java/com/glxp/api/res/trace/TraceOrderResponse.java index 15685ac..47b9a25 100644 --- a/src/main/java/com/glxp/api/res/trace/TraceOrderResponse.java +++ b/src/main/java/com/glxp/api/res/trace/TraceOrderResponse.java @@ -173,6 +173,8 @@ public class TraceOrderResponse { @ApiModelProperty(value = "查询记录号") private String recordCode; + private Integer count; + //获取往来信息 private String fromToCorp; diff --git a/src/main/java/com/glxp/api/service/basic/BasicUdiProductService.java b/src/main/java/com/glxp/api/service/basic/BasicUdiProductService.java index 8367cfd..4c24a1f 100644 --- a/src/main/java/com/glxp/api/service/basic/BasicUdiProductService.java +++ b/src/main/java/com/glxp/api/service/basic/BasicUdiProductService.java @@ -30,5 +30,6 @@ public interface BasicUdiProductService extends IService List filterNameCode(BasicUdiProductRequest basicUdiProductRequest); + boolean deleteByUuid(String uuid); } diff --git a/src/main/java/com/glxp/api/service/basic/impl/BasicUdiProductServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/BasicUdiProductServiceImpl.java index 4ee8db1..dfe4b4d 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/BasicUdiProductServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/BasicUdiProductServiceImpl.java @@ -83,4 +83,9 @@ public class BasicUdiProductServiceImpl extends ServiceImpl data = basicUdiProductMapper.filterNameCode(basicUdiProductRequest); return data; } + + @Override + public boolean deleteByUuid(String uuid) { + return basicUdiProductMapper.delete(new QueryWrapper().eq("uuid", uuid)) > 0; + } } diff --git a/src/main/java/com/glxp/api/service/trace/UdiTraceService.java b/src/main/java/com/glxp/api/service/trace/UdiTraceService.java index 454d526..30fc1e2 100644 --- a/src/main/java/com/glxp/api/service/trace/UdiTraceService.java +++ b/src/main/java/com/glxp/api/service/trace/UdiTraceService.java @@ -208,15 +208,18 @@ public class UdiTraceService { List certNums = toCorpCreditNums.stream().distinct().collect(Collectors.toList()); for (String certNum : certNums) { UserCompanyEntity userCompanyEntity = userCompanyService.getOne(new QueryWrapper().eq("creditNum", certNum)); - TraceTaskNoticeEntity taskNoticeEntity = traceTaskNoticeService.findTask(1, traceProductDetailEntity.getId(), userCompanyEntity.getId()); - if (taskNoticeEntity == null) { - taskNoticeEntity = createTraceNotice(1, traceProductDetailEntity, userCompanyEntity.getId()); - pushDelayExpireTask(taskNoticeEntity); - pushMq(taskNoticeEntity, userCompanyEntity.getId()); - } else if (taskNoticeEntity.getStatus() == 4) { - //任务超时未处理,重新推送消息 - pushMq(taskNoticeEntity, userCompanyEntity.getId()); + if (userCompanyEntity != null) { + TraceTaskNoticeEntity taskNoticeEntity = traceTaskNoticeService.findTask(1, traceProductDetailEntity.getId(), userCompanyEntity.getId()); + if (taskNoticeEntity == null) { + taskNoticeEntity = createTraceNotice(1, traceProductDetailEntity, userCompanyEntity.getId()); + pushDelayExpireTask(taskNoticeEntity); + pushMq(taskNoticeEntity, userCompanyEntity.getId()); + } else if (taskNoticeEntity.getStatus() == 4) { + //任务超时未处理,重新推送消息 + pushMq(taskNoticeEntity, userCompanyEntity.getId()); + } } + } } // } diff --git a/src/main/java/com/glxp/api/util/IDCUtils.java b/src/main/java/com/glxp/api/util/IDCUtils.java new file mode 100644 index 0000000..7ed4dfb --- /dev/null +++ b/src/main/java/com/glxp/api/util/IDCUtils.java @@ -0,0 +1,170 @@ +package com.glxp.api.util; + +import com.alibaba.fastjson.JSON; +import okhttp3.*; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Map; + + +/** + * @author chenqf + */ +public class IDCUtils { + private static final Logger logger = LoggerFactory.getLogger(IDCUtils.class); + private static String aliasNameChars = "_hijklmnopqrstuvwxyzabcdefg9876543210"; + private static String realNamechars = "abcdefghijklmnopqrstuvwxyz_0123456789"; + private final static String MONTH_EN = "JanFebMarAprMayJunJulAugSepOctNovDec"; + + //判断是否json字符串 + public static boolean isJson(String json) { + if(json!=null&&json.contains("{")&&json.contains("}")&&json.contains("\"")) + return true; + return false; + } + public static Date parseDate(String str) { + return parseDate(str,"yyyy-MM-dd HH:mm:ss"); + } + public static Date parseDate(String str,String fmt) { + String dateStr=str.replace("?", " "); + SimpleDateFormat df = new SimpleDateFormat(fmt); + if(str!=null&&!str.contains("-")&&str.length()>7&&StringUtils.isNumeric(str.substring(0, 4))&& + Long.valueOf(str.substring(0,4))>1899&&Long.valueOf(str.substring(0,4))<2199&& + StringUtils.isNumeric(str.substring(4, 6))&&StringUtils.isNumeric(str.substring(6, 8))&& + (!str.contains(" ")||(str.contains(" ")&&str.indexOf(" ")>7))) { + dateStr = str.substring(0,4)+"-"+str.substring(4,6)+"-"+str.substring(6,8); + dateStr+=" "; + if(str.contains(" ")) { + if(str.length()>9) { + dateStr+= str.substring(9,11); + if(str.length()>11) { + dateStr+=":"+str.substring(11,13); + if(str.length()>13) { + dateStr+=":"+str.substring(13,15); + } + } else { + dateStr+=":00:00"; + } + } else { + dateStr+="00:00:00"; + } + } else { + if(str.length()>8) { + dateStr+= str.substring(8,10); + if(str.length()>10) { + dateStr+=":"+str.substring(10,12); + if(str.length()>13) { + dateStr+=":"+str.substring(12,14); + } if(str.length()>12) { + dateStr+=":"+str.substring(12,13)+"0"; + } + } else { + dateStr+=":00:00"; + } + } else { + dateStr+="00:00:00"; + } + } + } else if(str!=null&&str.contains("CST")) { + //Wed Feb 16 15:35:31 CST 2022 + int index = str.indexOf("CST"); + int month = (MONTH_EN.indexOf(str.substring(index -16,index -13))+3)/3; + dateStr = str.substring(index+4)+"-"; + if(month<10) + dateStr+="0"; + dateStr+= month+"-"+str.substring(index -12,index -10)+" "+str.substring(index -9,index -1); + } else if(str!=null&&str.contains("GMT")) { + int index = str.indexOf("GMT"); + int month = (MONTH_EN.indexOf(str.substring(index -16,index -13))+3)/3; + if(str.contains("GMT+")) { + dateStr = str.substring(index+10)+"-"; + } else { + dateStr = str.substring(index+4)+"-"; + } + if(month<10) + dateStr+="0"; + dateStr+= month+"-"+str.substring(index -12,index -10)+" "+str.substring(index -9,index -1); + } else if (str!=null&&str.equals("-30609820800000")) { + dateStr="1000-01-01 00:01:01"; + } else if (str!=null&&str.length()==4&&StringUtils.isNumeric(str)&&Integer.valueOf(str)>999) { + dateStr=str+"-01-01 00:01:01"; + } else if (str!=null&&str.length()==6&&StringUtils.isNumeric(str)) { + dateStr=str.substring(0, 4)+"-"+str.substring(4)+"-01 00:01:01"; + } else if(str!=null&&StringUtils.isNumeric(str)&&str.length()>8&&(Long.valueOf(str.substring(0,4))<1899||Long.valueOf(str.substring(0,4))>2200)) { + dateStr=df.format(new Date(Long.valueOf(str))); + } + dateStr = dateStr.replace("T", " "); + + Date date = null; + try { + date = df.parse(dateStr); + + } catch (ParseException e) { + logger.error(e.getMessage()); + } + return date; + } + public static void createDirectory(String directory) { + String dir = directory; + String path =""; + String[] breakChar ={"\\","/"}; + for(String bk:breakChar) { + while(dir.indexOf(bk)>-1) { + path+=dir.substring(0,dir.indexOf(bk))+"\\"; + File file = new File(path); + if (!(new File(path)).exists()) { + (new File(path)).mkdir(); + } + if (dir.length()>dir.indexOf(bk)) { + dir = dir.substring(dir.indexOf(bk) +1); + } else { + dir = ""; + } + } + } + + } + + public static String post(String url, Map params) { + OkHttpClient client = new OkHttpClient().newBuilder() + .build(); + MediaType mediaType = MediaType.parse("application/json"); + RequestBody body = RequestBody.create(mediaType, ""); + if (params != null) + body = RequestBody.create(mediaType, JSON.toJSONString(params)); + Request request = new Request.Builder() + .url(url) + .method("POST", body) + .addHeader("Content-Type", "application/json") + .build(); + String result = ""; + try { + Response response = client.newCall(request).execute(); + result = response.body().string(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return result; + } + + + public static void writeFile(byte[] file, String filePath, String fileName) throws Exception { + File targetFile = new File(filePath); + if (!targetFile.exists()) { + targetFile.mkdirs(); + } + FileOutputStream out = new FileOutputStream(filePath + fileName); + out.write(file); + out.flush(); + out.close(); + } +} diff --git a/src/main/java/com/glxp/api/util/udi/UdiInfoUtil.java b/src/main/java/com/glxp/api/util/udi/UdiInfoUtil.java index edc6853..441438c 100644 --- a/src/main/java/com/glxp/api/util/udi/UdiInfoUtil.java +++ b/src/main/java/com/glxp/api/util/udi/UdiInfoUtil.java @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.glxp.api.constant.ConstantStatus; +import com.glxp.api.entity.basic.BasicUdiProductEntity; import com.glxp.api.entity.basic.UdiProductEntity; import java.util.List; @@ -24,22 +25,22 @@ public class UdiInfoUtil { return udiProductEntity; } - public static List initUdiInfoEntitys(List udiProductEntities) { + public static List initUdiInfoEntitys(List udiProductEntities) { if (CollUtil.isNotEmpty(udiProductEntities)) { - for (UdiProductEntity udiProductEntity : udiProductEntities) { + for (BasicUdiProductEntity udiProductEntity : udiProductEntities) { if (udiProductEntity.getId() == null) { udiProductEntity.setId(IdUtil.getSnowflakeNextId()); } - udiProductEntity.setProductType(ConstantStatus.PRODUCT_TYPE_UDI); - if (StrUtil.isNotEmpty(udiProductEntity.getScbssfbhph()) && "否".equals(udiProductEntity.getScbssfbhph())) { - udiProductEntity.setAllowNoBatch(true); - } - if (StrUtil.isNotEmpty(udiProductEntity.getScbssfbhscrq()) && "否".equals(udiProductEntity.getScbssfbhscrq())) { - udiProductEntity.setAllowNoProduct(true); - } - if (StrUtil.isNotEmpty(udiProductEntity.getScbssfbhsxrq()) && "否".equals(udiProductEntity.getScbssfbhsxrq())) { - udiProductEntity.setAllowNoExpire(true); - } +// udiProductEntity.setProductType(ConstantStatus.PRODUCT_TYPE_UDI); +// if (StrUtil.isNotEmpty(udiProductEntity.getScbssfbhph()) && "否".equals(udiProductEntity.getScbssfbhph())) { +// udiProductEntity.setAllowNoBatch(true); +// } +// if (StrUtil.isNotEmpty(udiProductEntity.getScbssfbhscrq()) && "否".equals(udiProductEntity.getScbssfbhscrq())) { +// udiProductEntity.setAllowNoProduct(true); +// } +// if (StrUtil.isNotEmpty(udiProductEntity.getScbssfbhsxrq()) && "否".equals(udiProductEntity.getScbssfbhsxrq())) { +// udiProductEntity.setAllowNoExpire(true); +// } } } diff --git a/src/main/resources/schemas/schema_v2.1.sql b/src/main/resources/schemas/schema_v2.1.sql index a12ef4d..ff4a873 100644 --- a/src/main/resources/schemas/schema_v2.1.sql +++ b/src/main/resources/schemas/schema_v2.1.sql @@ -11,6 +11,7 @@ CALL Pro_Temp_ColumnWork('user_register', 'xemail', 'varchar(255)', 1); CALL Pro_Temp_ColumnWork('user_register', 'fmobile', 'varchar(255)', 1); CALL Pro_Temp_ColumnWork('trace_order', 'recordCode', 'varchar(255)', 1); +CALL Pro_Temp_ColumnWork('trace_order', 'count', 'int', 1);