diff --git a/blade-biz-common/src/main/java/org/springblade/common/constant/CodeDesEnum.java b/blade-biz-common/src/main/java/org/springblade/common/constant/CodeDesEnum.java new file mode 100644 index 000000000..bac51f589 --- /dev/null +++ b/blade-biz-common/src/main/java/org/springblade/common/constant/CodeDesEnum.java @@ -0,0 +1,54 @@ +package org.springblade.common.constant; + +/** + * 编码摘要映射类型 + */ +public enum CodeDesEnum { + + WAYBILL(1,"YD"), + ORDER(2,"OD"), + PSCC(3,"PSCC"), + PSJH(4,"PSJJ"), + LOCATION(5,"KW"), + TRAYS(6,"TP"), + PACKAGE(7,"BJ"), + SHELF(8,"HJ"), + PSKH(9,"PSKH"); + + + private Integer codeNum; + private String typeMes; + + CodeDesEnum(Integer codeNum, String typeMes) { + this.codeNum = codeNum; + this.typeMes = typeMes; + } + + + public Integer getCodeNum() { + return codeNum; + } + + public void setCodeNum(Integer codeNum) { + this.codeNum = codeNum; + } + + public String getTypeMes() { + return typeMes; + } + + public void setTypeMes(String typeMes) { + this.typeMes = typeMes; + } + + public static String getMes(Integer codeNum){ + CodeDesEnum[] values = CodeDesEnum.values(); + for(CodeDesEnum codeDesEnum:values){ + if(codeDesEnum.getCodeNum().equals(codeNum)){ + return codeDesEnum.getTypeMes(); + } + } + return null; + } + +} diff --git a/blade-biz-common/src/main/java/org/springblade/common/constant/CodeNumConstant.java b/blade-biz-common/src/main/java/org/springblade/common/constant/CodeNumConstant.java new file mode 100644 index 000000000..c2db16a2f --- /dev/null +++ b/blade-biz-common/src/main/java/org/springblade/common/constant/CodeNumConstant.java @@ -0,0 +1,15 @@ +package org.springblade.common.constant; + +public class CodeNumConstant { + + public final static int WAYBILL = 1; + public final static int ORDER = 2; + public final static int PSCC = 3; + public final static int PSJH = 4; + public final static int LOCATION = 5; + public final static int TRAYS = 6; + public final static int PACKAGE = 7; + public final static int SHELF = 8; + public final static int PSKH = 9; + +} diff --git a/blade-biz-common/src/main/java/org/springblade/common/constant/RedisKeyConstant.java b/blade-biz-common/src/main/java/org/springblade/common/constant/RedisKeyConstant.java new file mode 100644 index 000000000..1ff321801 --- /dev/null +++ b/blade-biz-common/src/main/java/org/springblade/common/constant/RedisKeyConstant.java @@ -0,0 +1,6 @@ +package org.springblade.common.constant; + +public class RedisKeyConstant { + + +} diff --git a/blade-biz-common/src/main/java/org/springblade/common/utils/CommonUtil.java b/blade-biz-common/src/main/java/org/springblade/common/utils/CommonUtil.java index c4a9d7c80..6afaff719 100644 --- a/blade-biz-common/src/main/java/org/springblade/common/utils/CommonUtil.java +++ b/blade-biz-common/src/main/java/org/springblade/common/utils/CommonUtil.java @@ -19,14 +19,11 @@ package org.springblade.common.utils; import lombok.extern.log4j.Log4j2; import org.springframework.util.StringUtils; -import java.text.ParseException; +import java.text.NumberFormat; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.format.DateTimeFormatter; -import java.util.Date; -import java.util.Random; -import java.util.TimeZone; -import java.util.UUID; +import java.util.*; /** * 通用工具类 @@ -107,4 +104,35 @@ public class CommonUtil { } } + + public static String dateToStringShort(Date date){ + if (!Objects.isNull(date)) { + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyMMdd"); + return simpleDateFormat.format(date); + } + return null; + } + + public static Date getDayEnd(){ + Calendar calendar = Calendar.getInstance(); + calendar.setTime(new Date()); + // 将时分秒,毫秒域清零 + calendar.set(Calendar.HOUR_OF_DAY, 23); + calendar.set(Calendar.MINUTE, 59); + calendar.set(Calendar.SECOND, 59); + calendar.set(Calendar.MILLISECOND, 999); + return calendar.getTime(); + } + + /** + * 数字前面自动补零 + * @param number 数字 + * @return + */ + public static String geFourNumber(Long number){ + NumberFormat formatter = NumberFormat.getNumberInstance(); + formatter.setMinimumIntegerDigits(4); + formatter.setGroupingUsed(false); + return formatter.format(number); + } } diff --git a/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataCodeClient.java b/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataCodeClient.java new file mode 100644 index 000000000..260047254 --- /dev/null +++ b/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataCodeClient.java @@ -0,0 +1,18 @@ +package com.logpm.basicdata.feign; + +import org.springblade.common.constant.ModuleNameConstant; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +@FeignClient( + value = ModuleNameConstant.APPLICATION_BASICDATA_NAME+"-zhy" +) +public interface IBasicdataCodeClient { + + String API_PREFIX = "/client"; + + @GetMapping(API_PREFIX+"/getCodeByType") + String getCodeByType(@RequestParam Integer type,@RequestParam String warehouseCode); + +} diff --git a/blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/feign/IWarehouseClient.java b/blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/feign/IWarehouseClient.java index b6ceda8f4..1021caec4 100644 --- a/blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/feign/IWarehouseClient.java +++ b/blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/feign/IWarehouseClient.java @@ -52,4 +52,8 @@ public interface IWarehouseClient { @GetMapping("/findByName") WarehouseEntity findByName(@RequestParam String destinationWarehouse); + + @GetMapping("/findByCode") + WarehouseEntity findByCode(String warehouseCode); + } diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataCodeClient.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataCodeClient.java new file mode 100644 index 000000000..f43c5d99f --- /dev/null +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataCodeClient.java @@ -0,0 +1,19 @@ +package com.logpm.basicdata.feign; + +import com.logpm.basicdata.service.IBasicdataCodeService; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RestController; +import springfox.documentation.annotations.ApiIgnore; + +@ApiIgnore() +@RestController +@AllArgsConstructor +public class BasicdataCodeClient implements IBasicdataCodeClient { + + private final IBasicdataCodeService basicdataCodeService; + + @Override + public String getCodeByType(Integer type,String warehouseCode) { + return basicdataCodeService.getCodeByType(type,warehouseCode); + } +} diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataCodeService.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataCodeService.java new file mode 100644 index 000000000..2a1a7debd --- /dev/null +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataCodeService.java @@ -0,0 +1,7 @@ +package com.logpm.basicdata.service; + +public interface IBasicdataCodeService { + + String getCodeByType(Integer type,String warehouseCode); + +} diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataCodeServiceImpl.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataCodeServiceImpl.java new file mode 100644 index 000000000..ad65612e1 --- /dev/null +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataCodeServiceImpl.java @@ -0,0 +1,105 @@ +package com.logpm.basicdata.service.impl; + +import com.logpm.basic.feign.IBasicTenantCodeClient; +import com.logpm.basicdata.service.IBasicdataCodeService; +import lombok.AllArgsConstructor; +import lombok.extern.log4j.Log4j2; +import org.springblade.common.constant.CodeDesEnum; +import org.springblade.common.constant.CodeNumConstant; +import org.springblade.common.utils.CommonUtil; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.secure.utils.AuthUtil; +import org.springframework.stereotype.Service; + +import java.util.Date; + +@Service +@AllArgsConstructor +@Log4j2 +public class BasicdataCodeServiceImpl implements IBasicdataCodeService { + + private final BladeRedis bladeRedis; + + private final IBasicTenantCodeClient basicTenantCodeClient; + +// private final IWarehouseClient warehouseClient; + + /** + * 根据类型生成编号 + * @param type + * @return + */ + @Override + public String getCodeByType(Integer type,String warehouseCode) { + String code = null; + switch (type){ +// case CodeNumConstant.WAYBILL: +// break; +// case CodeNumConstant.ORDER: +// break; + case CodeNumConstant.PSCC: + code = generateDeliveryTrainNumber(type,warehouseCode); + break; +// case CodeNumConstant.PSJH: +// break; +// case CodeNumConstant.LOCATION: +// break; +// case CodeNumConstant.TRAYS: +// break; +// case CodeNumConstant.PACKAGE: +// break; +// case CodeNumConstant.SHELF: +// break; + case CodeNumConstant.PSKH: + code = generateDeliveryCustomOrder(type,warehouseCode); + break; + default: + log.info("##################getCodeByType: 暂不支持的编码类型 type={}", CodeDesEnum.getMes(type)); + } + return code; + } + + private String generateDeliveryCustomOrder(Integer type, String warehouseCode) { + //查询租户编码 + String des = CodeDesEnum.getMes(type);//摘要 + String tenantId = AuthUtil.getTenantId();//租户id +// String tenantId = "627683";//租户号 + + String tenantCode = basicTenantCodeClient.shelfCode(tenantId, String.valueOf(type));//租户编码 + //获得年月日短字符串 + String dateShort = CommonUtil.dateToStringShort(new Date()); + String key = tenantId + ":" + warehouseCode + ":" + des+":"+dateShort; + //获得序号 + Long incr = bladeRedis.incr(key); + if(1 == incr){ + //如果为1就是刚刚才建立,给他一个过期时间 + bladeRedis.expireAt(key,CommonUtil.getDayEnd()); + } + + return tenantCode+warehouseCode+dateShort+CommonUtil.geFourNumber(incr); + } + + /** + * 生成配送车次号编码 + * @param type + */ + private String generateDeliveryTrainNumber(Integer type,String warehouseCode) { + String des = CodeDesEnum.getMes(type);//摘要 + String tenantId = AuthUtil.getTenantId();//租户号 +// String tenantId = "627683";//租户号 + + //获得年月日短字符串 + String dateShort = CommonUtil.dateToStringShort(new Date()); + + //redis的key + String key = tenantId + ":" + warehouseCode + ":" + des+":"+dateShort; + //获得序号 + Long incr = bladeRedis.incr(key); + if(1 == incr){ + //如果为1就是刚刚才建立,给他一个过期时间 + bladeRedis.expireAt(key,CommonUtil.getDayEnd()); + } + + return warehouseCode + des + dateShort + CommonUtil.geFourNumber(incr); + } +} diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/DistributionApplication.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/DistributionApplication.java index 12b39ef2c..de58864a3 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/DistributionApplication.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/DistributionApplication.java @@ -29,7 +29,7 @@ import org.springblade.core.launch.BladeApplication; public class DistributionApplication { public static void main(String[] args) { - BladeApplication.run(ModuleNameConstant.APPLICATION_DISTRIBUTION_NAME.concat("-pref"), DistributionApplication.class, args); + BladeApplication.run(ModuleNameConstant.APPLICATION_DISTRIBUTION_NAME, DistributionApplication.class, args); } } diff --git a/blade-service/logpm-factory/src/test/java/com/logpm/factory/TestService.java b/blade-service/logpm-factory/src/test/java/com/logpm/factory/TestService.java index 8ced88c95..9add403f6 100644 --- a/blade-service/logpm-factory/src/test/java/com/logpm/factory/TestService.java +++ b/blade-service/logpm-factory/src/test/java/com/logpm/factory/TestService.java @@ -1,29 +1,17 @@ package com.logpm.factory; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.logpm.factory.mt.service.impl.MtFactoryDataServiceImpl; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.springblade.core.test.BladeBootTest; -import org.springblade.core.test.BladeSpringExtension; -import org.springblade.core.tool.utils.StringUtil; -import org.springframework.beans.factory.annotation.Autowired; - -import java.util.List; -import java.util.Random; - //@ExtendWith(BladeSpringExtension.class) //@BladeBootTest(appName = "logpm-factory", enableLoader = true) public class TestService { - @Autowired - private MtFactoryDataServiceImpl mtFactoryDataService; - @Test - public void contextLoads() { - - String tolk =mtFactoryDataService.getMtToken(); - System.out.println(tolk); - - } +// @Autowired +// private MtFactoryDataServiceImpl mtFactoryDataService; +// @Test +// public void contextLoads() { +// +// String tolk =mtFactoryDataService.getMtToken(); +// System.out.println(tolk); +// +// } } diff --git a/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/feign/WarehouseClient.java b/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/feign/WarehouseClient.java index 80856ef90..df8df4dad 100644 --- a/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/feign/WarehouseClient.java +++ b/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/feign/WarehouseClient.java @@ -55,4 +55,9 @@ public class WarehouseClient implements IWarehouseClient { public WarehouseEntity findByName(String destinationWarehouse) { return warehouseService.findByName(destinationWarehouse); } + + @Override + public WarehouseEntity findByCode(String warehouseCode) { + return warehouseService.findByCode(warehouseCode); + } } diff --git a/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/IWarehouseService.java b/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/IWarehouseService.java index cb2626277..c73f92ef3 100644 --- a/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/IWarehouseService.java +++ b/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/IWarehouseService.java @@ -41,6 +41,9 @@ public interface IWarehouseService { WarehouseEntity getById(Integer id); WarehouseEntity findByName(String destinationWarehouse); + + WarehouseEntity findByCode(String warehouseCode); + } diff --git a/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/impl/WarehouseServiceImpl.java b/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/impl/WarehouseServiceImpl.java index 292eb4025..83078757c 100644 --- a/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/impl/WarehouseServiceImpl.java +++ b/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/impl/WarehouseServiceImpl.java @@ -63,5 +63,12 @@ public class WarehouseServiceImpl implements IWarehouseService { return warehouseMapper.selectOne(queryWrapper); } + @Override + public WarehouseEntity findByCode(String warehouseCode) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("warehouse_code",warehouseCode); + return warehouseMapper.selectOne(queryWrapper); + } + }