Browse Source

Merge remote-tracking branch 'origin/dev' into dev

dist.1.3.0
zhenghaoyu 9 months ago
parent
commit
a71087ef63
  1. 2
      blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java
  2. 11
      blade-biz-common/src/main/java/org/springblade/common/utils/CommonUtil.java
  3. 7
      blade-biz-common/src/main/java/org/springblade/common/utils/QRCodeUtil.java
  4. 1
      blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataCodeRecordEntity.java
  5. 3
      blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataFactoryCategoryEntity.java
  6. 2
      blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/WarehouseTrayQRCode.java
  7. 2
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataCodeRecordMapper.java
  8. 1
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataCodeRecordMapper.xml
  9. 25
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataFactoryCategoryMapper.xml
  10. 2
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataTrayMapper.xml
  11. 2
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataCodeRecordService.java
  12. 2
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataCodeService.java
  13. 4
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataCodeRecordServiceImpl.java
  14. 415
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataCodeServiceImpl.java
  15. 1
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataTrayServiceImpl.java
  16. 3
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/api/DistributionAddvalueAppController.java
  17. 21
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockArticleController.java
  18. 28
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java
  19. 139
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml
  20. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.xml
  21. 3
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionAddvalueService.java
  22. 555
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAddvalueServiceImpl.java
  23. 17
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java
  24. 18
      blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/controller/OrderController.java
  25. 35
      blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/entity/FactoryNodePushEntity.java
  26. 2
      blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/mapper/FactoryNodePushMapper.java
  27. 13
      blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/mapper/FactoryNodePushMapper.xml
  28. 6
      blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/mq/NodeDataPushListener.java
  29. 32
      blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/query/FactoryNodePushQuery.java
  30. 10
      blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/service/FactoryNodePushService.java
  31. 76
      blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/service/impl/FactoryNodePushServiceImpl.java
  32. 28
      blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/util/QueryUtil.java
  33. 4
      blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/vo/CentralStkInConfirmOrderVO.java
  34. 4
      blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/vo/SignForConfirmPackageVO.java
  35. 2
      blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/service/impl/MtFactoryDataServiceImpl.java
  36. 55
      blade-service/logpm-factory/src/test/java/com/logpm/factory/TestService.java
  37. 20
      blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/DistributionDatarepair.java
  38. 1
      blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.java
  39. 5
      blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.xml
  40. 102
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceDetailServiceImpl.java

2
blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java

@ -9,7 +9,7 @@ public interface ModuleNameConstant {
/**
* 如果不需要 ""
*/
public static final String DEVAUTH ="-tjj";
public static final String DEVAUTH ="";
/**
* 工厂对接服务名称

11
blade-biz-common/src/main/java/org/springblade/common/utils/CommonUtil.java

@ -229,6 +229,15 @@ public class CommonUtil {
return preMonth;
}
/**
* 数字前面自动补零
* @param number 数字
* @return
*/
public static String geFourNumberByString(String number,int num){
return geFourNumber(Long.parseLong(number),num);
}
/**
* 数字前面自动补零
* @param number 数字
@ -259,6 +268,8 @@ public class CommonUtil {
}
public static Date getEndByDateStr(String endDate) {
try {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

7
blade-biz-common/src/main/java/org/springblade/common/utils/QRCodeUtil.java

@ -105,6 +105,11 @@ public class QRCodeUtil {
return null;
}
/**
* 条形码
* @param content
* @return
*/
public static String createCodeToFileType(String content) {
try {
//getResource("/")等同于到resource文件夹下
@ -167,7 +172,7 @@ public class QRCodeUtil {
hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
//EncodeHintType.MARGIN:设置二维码边距,单位像素,值越小,二维码距离四周越近
hints.put(EncodeHintType.MARGIN, 1);
hints.put(EncodeHintType.MARGIN, 0);
MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
BitMatrix bitMatrix = multiFormatWriter.encode(content, BarcodeFormat.QR_CODE, CODE_WIDTH, CODE_HEIGHT, hints);

1
blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataCodeRecordEntity.java

@ -18,6 +18,7 @@ public class BasicdataCodeRecordEntity extends TenantEntity {
private String warehouseCode;
private String year;
private String month;
private String day;
private Integer num;
}

3
blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataFactoryCategoryEntity.java

@ -64,6 +64,9 @@ public class BasicdataFactoryCategoryEntity extends TenantEntity {
@ApiModelProperty(value = "品牌id")
private Long brandId;
@ApiModelProperty(value = "结算类型 1 收入 2 成本")
private Integer type;

2
blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/WarehouseTrayQRCode.java

@ -14,6 +14,8 @@ public class WarehouseTrayQRCode {
private String trayCode;
private String palletName;
public Map<String, Object> toMap() throws IllegalAccessException {
Map<String, Object> map = new HashMap<>();

2
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataCodeRecordMapper.java

@ -7,5 +7,5 @@ import org.apache.ibatis.annotations.Param;
@Mapper
public interface BasicdataCodeRecordMapper extends BaseMapper<BasicdataCodeRecordEntity> {
BasicdataCodeRecordEntity findEntityByCodeTypeAndWarehouseCodeAndYearAndMonth(@Param("type") Integer type, @Param("warehouseCode") String warehouseCode, @Param("year") String year, @Param("month") String month);
BasicdataCodeRecordEntity findEntityByCodeTypeAndWarehouseCodeAndYearAndMonth(@Param("type") Integer type, @Param("warehouseCode") String warehouseCode, @Param("year") String year, @Param("month") String month,@Param("day") String day);
}

1
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataCodeRecordMapper.xml

@ -10,6 +10,7 @@
and warehouse_code = #{warehouseCode}
and `year` = #{year}
and `month` = #{month}
and `day` = #{day}
</select>
</mapper>

25
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataFactoryCategoryMapper.xml

@ -7,8 +7,23 @@
from logpm_basicdata_factory_category
where 1=1
and is_deleted = 0
<if test="param.brand != null and param.brand != ''">
and brand = #{param.brand}
<if test="param.type != null ">
and type = #{param.type}
</if>
<if test="param.category != null and param.category != ''">
and category = #{param.category}
</if>
<if test="param.firsts != null and param.firsts != ''">
and firsts = #{param.firsts}
</if>
<if test="param.seconds != null and param.seconds != ''">
and seconds = #{param.seconds}
</if>
<if test="param.thirds != null and param.thirds != ''">
and thirds = #{param.thirds}
</if>
</select>
@ -18,6 +33,12 @@
where 1=1
and brand = #{param.brand}
and is_deleted = 0
<if test="param.type != null and param.type != ''">
and type = #{param.type}
</if>
<if test="param.category != null and param.category != ''">
and category = #{param.category}
</if>
<if test="param.firsts == null or param.firsts == ''">
and (firsts is null or firsts = '')
</if>

2
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataTrayMapper.xml

@ -414,7 +414,7 @@
<select id="getTray" resultType="com.logpm.warehouse.vo.WarehouseTrayQRCode">
SELECT lwt.pallet_code trayCode ,lww.name warehouseName from logpm_warehouse_tray lwt LEFT JOIN logpm_warehouse_warehouse lww on lww.id =lwt.warehouse_id where lwt.id = #{id}
SELECT lwt.pallet_code trayCode ,lww.name warehouseName,lwt.pallet_name from logpm_warehouse_tray lwt LEFT JOIN logpm_warehouse_warehouse lww on lww.id =lwt.warehouse_id where lwt.id = #{id}
</select>

2
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataCodeRecordService.java

@ -4,5 +4,5 @@ import com.logpm.basicdata.entity.BasicdataCodeRecordEntity;
import org.springblade.core.mp.base.BaseService;
public interface IBasicdataCodeRecordService extends BaseService<BasicdataCodeRecordEntity> {
BasicdataCodeRecordEntity findEntityByCodeTypeAndWarehouseCodeAndYearAndMonth(Integer type, String warehouseCode, String year, String month);
BasicdataCodeRecordEntity findEntityByCodeTypeAndWarehouseCodeAndYearAndMonth(Integer type, String warehouseCode, String year, String month,String day);
}

2
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataCodeService.java

@ -6,5 +6,5 @@ public interface IBasicdataCodeService {
String getCodeByType(Integer type,String warehouseCode,String orderCode);
List<String> getBatchPackageCodeByType(String warehouseCode, String orderCode, Integer num);
List<String> getBatchPackageCodeByType(String warehouseCode, String orderCode, Integer num) ;
}

4
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataCodeRecordServiceImpl.java

@ -13,7 +13,7 @@ import org.springframework.stereotype.Service;
@AllArgsConstructor
public class BasicdataCodeRecordServiceImpl extends BaseServiceImpl<BasicdataCodeRecordMapper, BasicdataCodeRecordEntity> implements IBasicdataCodeRecordService {
@Override
public BasicdataCodeRecordEntity findEntityByCodeTypeAndWarehouseCodeAndYearAndMonth(Integer type, String warehouseCode, String year, String month) {
return baseMapper.findEntityByCodeTypeAndWarehouseCodeAndYearAndMonth(type,warehouseCode,year,month);
public BasicdataCodeRecordEntity findEntityByCodeTypeAndWarehouseCodeAndYearAndMonth(Integer type, String warehouseCode, String year, String month,String day) {
return baseMapper.findEntityByCodeTypeAndWarehouseCodeAndYearAndMonth(type,warehouseCode,year,month,day);
}
}

415
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataCodeServiceImpl.java

@ -7,6 +7,7 @@ import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
import com.logpm.basicdata.service.IBasicdataCodeRecordService;
import com.logpm.basicdata.service.IBasicdataCodeService;
import com.logpm.basicdata.service.IBasicdataWarehouseService;
import io.swagger.models.auth.In;
import lombok.AllArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.springblade.common.constant.CodeDesEnum;
@ -38,15 +39,16 @@ public class BasicdataCodeServiceImpl implements IBasicdataCodeService {
/**
* 根据类型生成编号
*
* @param type
* @return
*/
@Override
public String getCodeByType(Integer type,String warehouseCode,String orderCode) {
public String getCodeByType(Integer type, String warehouseCode, String orderCode) {
String code = null;
switch (type){
switch (type) {
case CodeNumConstant.WAYBILL:
code = getWayBillNo(type,warehouseCode);
code = getWayBillNo(type, warehouseCode);
break;
// case CodeNumConstant.ORDER:
// break;
@ -58,11 +60,11 @@ public class BasicdataCodeServiceImpl implements IBasicdataCodeService {
// case CodeNumConstant.LOCATION:
// break;
case CodeNumConstant.TRAYS:
code = generateTraysCode(type,warehouseCode);
code = generateTraysCode(type, warehouseCode);
break;
case CodeNumConstant.PACKAGE:
//包件号
code = generatePackageCode(type,warehouseCode,orderCode);
code = generatePackageCode(type, warehouseCode, orderCode);
break;
// case CodeNumConstant.SHELF:
// break;
@ -70,22 +72,22 @@ public class BasicdataCodeServiceImpl implements IBasicdataCodeService {
// code = generateDeliveryCustomOrder(type,warehouseCode);
// break;
case CodeNumConstant.ABNORMAL_ORDER:
code = generateExOrderCode(type,warehouseCode,orderCode);
code = generateExOrderCode(type, warehouseCode, orderCode);
break;
case CodeNumConstant.TRUNKLINEBILLLADING:
code = generateTrunklineBillladingCode(type,warehouseCode,orderCode);
code = generateTrunklineBillladingCode(type, warehouseCode, orderCode);
break;
case CodeNumConstant.TRUNKLINE_CARS_LOAD:
code = generateTrunklineCarsLineCode(type,warehouseCode,orderCode);
code = generateTrunklineCarsLineCode(type, warehouseCode, orderCode);
break;
case CodeNumConstant.TRUNKLINE_TRIPARTITE_LOAD:
code = generateTrunklineTripartiteLoadCode(type,warehouseCode,orderCode);
code = generateTrunklineTripartiteLoadCode(type, warehouseCode, orderCode);
break;
case CodeNumConstant.TRUNKLINE_LOAD_SIGN:
code = generateTrunklineLoadSignCode(type,warehouseCode,orderCode);
code = generateTrunklineLoadSignCode(type, warehouseCode, orderCode);
break;
case CodeNumConstant.BALANCE_ORDER:
code = generateBalanceOrderCode(type,warehouseCode,orderCode);
code = generateBalanceOrderCode(type, warehouseCode, orderCode);
break;
default:
log.info("##################getCodeByType: 暂不支持的编码类型 type={}", CodeDesEnum.getMes(type));
@ -94,36 +96,23 @@ public class BasicdataCodeServiceImpl implements IBasicdataCodeService {
}
private String generateBalanceOrderCode(Integer type, String warehouseCode, String orderCode) {
if(!"BALANCE_ORDER".equals(warehouseCode)){
log.warn("#########generateBalanceOrderCode: 仓库编码有误 warehouseCode={}",warehouseCode);
if (!"BALANCE_ORDER".equals(warehouseCode)) {
log.warn("#########generateBalanceOrderCode: 仓库编码有误 warehouseCode={}", warehouseCode);
return null;
}
BasicdataWarehouseEntity basicdataWarehouseEntity = basicdataWarehouseService.getWarehouseEntityByWarehouseCode(warehouseCode);
if (Objects.isNull(basicdataWarehouseEntity)) {
log.warn("############getWayBillNo: 仓库信息不存在 warehouseCode={}", warehouseCode);
return null;
}
Calendar calendar = Calendar.getInstance();
//获取年份
Integer year = calendar.get(Calendar.YEAR);
// 获取月份(注意月份从0开始计数)
Integer month = calendar.get(Calendar.MONTH) + 1;
BasicdataCodeRecordEntity basicdataCodeRecordEntity = getBasicdataCodeRecordEntity(type, basicdataWarehouseEntity);
BasicdataCodeRecordEntity basicdataCodeRecordEntity = basicdataCodeRecordService.findEntityByCodeTypeAndWarehouseCodeAndYearAndMonth(CodeNumConstant.PACKAGE,warehouseCode,year+"",month+"");
if(Objects.isNull(basicdataCodeRecordEntity)){
basicdataCodeRecordEntity = new BasicdataCodeRecordEntity();
basicdataCodeRecordEntity.setCodeType(CodeNumConstant.PACKAGE);
basicdataCodeRecordEntity.setWarehouseName("全仓");
basicdataCodeRecordEntity.setWarehouseCode(warehouseCode);
basicdataCodeRecordEntity.setYear(year+"");
basicdataCodeRecordEntity.setMonth(month+"");
basicdataCodeRecordEntity.setNum(0);
basicdataCodeRecordService.save(basicdataCodeRecordEntity);
}
Integer oldNum = basicdataCodeRecordEntity.getNum();
oldNum = oldNum + 1;
String packageCode = "JSD" + year + CommonUtil.geFourNumber(month.longValue(),2) + CommonUtil.geFourNumber(oldNum.longValue(),6);
String packageCode = "JSD" + basicdataCodeRecordEntity.getYear() + CommonUtil.geFourNumberByString(basicdataCodeRecordEntity.getMonth(), 2) + CommonUtil.geFourNumber(oldNum.longValue(), 6);
basicdataCodeRecordEntity.setNum(oldNum);
basicdataCodeRecordService.updateById(basicdataCodeRecordEntity);
@ -131,52 +120,38 @@ public class BasicdataCodeServiceImpl implements IBasicdataCodeService {
}
@Override
public List<String> getBatchPackageCodeByType(String warehouseCode, String orderCode, Integer num) {
if(!StringUtil.hasLength(warehouseCode)){
log.warn("############getBatchPackageCodeByType: 仓库编码为空warehouseCode={}",warehouseCode);
public List<String> getBatchPackageCodeByType(String warehouseCode, String orderCode, Integer num) {
if (!StringUtil.hasLength(warehouseCode)) {
log.warn("############getBatchPackageCodeByType: 仓库编码为空warehouseCode={}", warehouseCode);
return null;
}
if(!StringUtil.hasLength(orderCode)){
log.warn("############getBatchPackageCodeByType: 订单号为空orderCode={}",orderCode);
if (!StringUtil.hasLength(orderCode)) {
log.warn("############getBatchPackageCodeByType: 订单号为空orderCode={}", orderCode);
return null;
}
//包条 HT+仓库拼音/超管/职能+年月日时分秒+订单索引+包条个数索引
String haxCodeByLong = CommonUtil.getHaxCodeByLong(orderCode, 8);
BasicdataWarehouseEntity basicdataWarehouseEntity = basicdataWarehouseService.getWarehouseEntityByWarehouseCode(warehouseCode);
if(Objects.isNull(basicdataWarehouseEntity)){
log.warn("############getWayBillNo: 仓库信息不存在 warehouseCode={}",warehouseCode);
if (Objects.isNull(basicdataWarehouseEntity)) {
log.warn("############getWayBillNo: 仓库信息不存在 warehouseCode={}", warehouseCode);
return null;
}
//包条 HT+仓库拼音/超管/职能+年月日时分秒+订单索引+包条个数索引CodeNumConstant.PACKAGE
BasicdataCodeRecordEntity basicdataCodeRecordEntity = getBasicdataCodeRecordEntity(CodeDesEnum.PACKAGE.getCodeNum(), basicdataWarehouseEntity);
Calendar calendar = Calendar.getInstance();
//获取年份
Integer year = calendar.get(Calendar.YEAR);
// 获取月份(注意月份从0开始计数)
Integer month = calendar.get(Calendar.MONTH) + 1;
BasicdataCodeRecordEntity basicdataCodeRecordEntity = basicdataCodeRecordService.findEntityByCodeTypeAndWarehouseCodeAndYearAndMonth(CodeNumConstant.PACKAGE,warehouseCode,year+"",month+"");
if(Objects.isNull(basicdataCodeRecordEntity)){
basicdataCodeRecordEntity = new BasicdataCodeRecordEntity();
basicdataCodeRecordEntity.setCodeType(CodeNumConstant.PACKAGE);
basicdataCodeRecordEntity.setWarehouseId(basicdataWarehouseEntity.getId());
basicdataCodeRecordEntity.setWarehouseName(basicdataWarehouseEntity.getName());
basicdataCodeRecordEntity.setWarehouseCode(warehouseCode);
basicdataCodeRecordEntity.setYear(year+"");
basicdataCodeRecordEntity.setMonth(month+"");
basicdataCodeRecordEntity.setNum(0);
basicdataCodeRecordService.save(basicdataCodeRecordEntity);
}
Integer oldNum = basicdataCodeRecordEntity.getNum();
List<String> packageCodes = new ArrayList<>();
int year =Integer.parseInt(basicdataCodeRecordEntity.getYear())%100;
for (int i = 0; i < num; i++) {
//获取时间戳后面的时分秒
try {
Thread.sleep(1);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
String time = new String(System.currentTimeMillis() + "");
time=time.substring(4);
oldNum = oldNum + 1;
String packageCode = "HT" + warehouseCode + year + CommonUtil.geFourNumber(month.longValue(),2) + haxCodeByLong + CommonUtil.geFourNumber(oldNum.longValue(),6);
String packageCode = "HT" + warehouseCode + year + CommonUtil.geFourNumberByString(basicdataCodeRecordEntity.getMonth(), 2) + basicdataCodeRecordEntity.getDay() + time;
packageCodes.add(packageCode);
}
basicdataCodeRecordEntity.setNum(oldNum);
@ -187,328 +162,231 @@ public class BasicdataCodeServiceImpl implements IBasicdataCodeService {
private String generateTrunklineLoadSignCode(Integer type, String warehouseCode, String orderCode) {
if(!StringUtil.hasLength(warehouseCode)){
log.warn("############generateTrunklineLoadSignCode: 仓库编码为空warehouseCode={}",warehouseCode);
if (!StringUtil.hasLength(warehouseCode)) {
log.warn("############generateTrunklineLoadSignCode: 仓库编码为空warehouseCode={}", warehouseCode);
return null;
}
BasicdataWarehouseEntity basicdataWarehouseEntity = basicdataWarehouseService.getWarehouseEntityByWarehouseCode(warehouseCode);
if(Objects.isNull(basicdataWarehouseEntity)){
log.warn("############getWayBillNo: 仓库信息不存在 warehouseCode={}",warehouseCode);
if (Objects.isNull(basicdataWarehouseEntity)) {
log.warn("############getWayBillNo: 仓库信息不存在 warehouseCode={}", warehouseCode);
return null;
}
BasicdataCodeRecordEntity basicdataCodeRecordEntity = getBasicdataCodeRecordEntity(type, basicdataWarehouseEntity);
Integer inrc = basicdataCodeRecordEntity.getNum() + 1;
basicdataCodeRecordEntity.setNum(inrc);
basicdataCodeRecordService.updateById(basicdataCodeRecordEntity);
return warehouseCode + "ZFQS" + basicdataCodeRecordEntity.getYear() + basicdataCodeRecordEntity.getMonth() + CommonUtil.geFourNumber(inrc.longValue(), 5);
}
/**
* 获取编码生成记录
*
* @param type
* @param basicdataWarehouseEntity
* @return
*/
private BasicdataCodeRecordEntity getBasicdataCodeRecordEntity(Integer type, BasicdataWarehouseEntity basicdataWarehouseEntity) {
Calendar calendar = Calendar.getInstance();
//获取年份
Integer year = calendar.get(Calendar.YEAR);
// 获取月份(注意月份从0开始计数)
Integer month = calendar.get(Calendar.MONTH) + 1;
Integer day = calendar.get(Calendar.DAY_OF_MONTH);
BasicdataCodeRecordEntity basicdataCodeRecordEntity = basicdataCodeRecordService.findEntityByCodeTypeAndWarehouseCodeAndYearAndMonth(type, basicdataWarehouseEntity.getWarehouseCode(), year + "", month + "", day + "");
BasicdataCodeRecordEntity basicdataCodeRecordEntity = basicdataCodeRecordService.findEntityByCodeTypeAndWarehouseCodeAndYearAndMonth(type,warehouseCode,year+"",month+"");
if(Objects.isNull(basicdataCodeRecordEntity)){
if (Objects.isNull(basicdataCodeRecordEntity)) {
basicdataCodeRecordEntity = new BasicdataCodeRecordEntity();
basicdataCodeRecordEntity.setCodeType(type);
basicdataCodeRecordEntity.setWarehouseId(basicdataWarehouseEntity.getId());
basicdataCodeRecordEntity.setWarehouseName(basicdataWarehouseEntity.getName());
basicdataCodeRecordEntity.setWarehouseCode(warehouseCode);
basicdataCodeRecordEntity.setYear(year+"");
basicdataCodeRecordEntity.setMonth(month+"");
basicdataCodeRecordEntity.setWarehouseCode(basicdataWarehouseEntity.getWarehouseCode());
basicdataCodeRecordEntity.setYear(year + "");
basicdataCodeRecordEntity.setMonth(month + "");
basicdataCodeRecordEntity.setDay(day + "");
basicdataCodeRecordEntity.setNum(0);
basicdataCodeRecordService.save(basicdataCodeRecordEntity);
}
Integer inrc = basicdataCodeRecordEntity.getNum() + 1;
basicdataCodeRecordEntity.setNum(inrc);
basicdataCodeRecordService.updateById(basicdataCodeRecordEntity);
return warehouseCode+"ZFQS"+year+CommonUtil.geFourNumber(month.longValue(), 2)+CommonUtil.geFourNumber(inrc.longValue(), 5);
return basicdataCodeRecordEntity;
}
private String generateTrunklineTripartiteLoadCode(Integer type, String warehouseCode, String orderCode) {
if(!StringUtil.hasLength(warehouseCode)){
log.warn("############generateTrunklineCarsLineCode: 仓库编码为空warehouseCode={}",warehouseCode);
if (!StringUtil.hasLength(warehouseCode)) {
log.warn("############generateTrunklineCarsLineCode: 仓库编码为空warehouseCode={}", warehouseCode);
return null;
}
String f = "ZZ";
BasicdataWarehouseEntity basicdataWarehouseEntity = basicdataWarehouseService.getWarehouseEntityByWarehouseCode(warehouseCode);
if(Objects.isNull(basicdataWarehouseEntity)){
log.warn("############getWayBillNo: 仓库信息不存在 warehouseCode={}",warehouseCode);
if (Objects.isNull(basicdataWarehouseEntity)) {
log.warn("############getWayBillNo: 仓库信息不存在 warehouseCode={}", warehouseCode);
return null;
}
Calendar calendar = Calendar.getInstance();
//获取年份
Integer year = calendar.get(Calendar.YEAR);
// 获取月份(注意月份从0开始计数)
Integer month = calendar.get(Calendar.MONTH) + 1;
BasicdataCodeRecordEntity basicdataCodeRecordEntity = basicdataCodeRecordService.findEntityByCodeTypeAndWarehouseCodeAndYearAndMonth(type,warehouseCode,year+"",month+"");
if(Objects.isNull(basicdataCodeRecordEntity)){
basicdataCodeRecordEntity = new BasicdataCodeRecordEntity();
basicdataCodeRecordEntity.setCodeType(type);
basicdataCodeRecordEntity.setWarehouseId(basicdataWarehouseEntity.getId());
basicdataCodeRecordEntity.setWarehouseName(basicdataWarehouseEntity.getName());
basicdataCodeRecordEntity.setWarehouseCode(warehouseCode);
basicdataCodeRecordEntity.setYear(year+"");
basicdataCodeRecordEntity.setMonth(month+"");
basicdataCodeRecordEntity.setNum(0);
basicdataCodeRecordService.save(basicdataCodeRecordEntity);
}
BasicdataCodeRecordEntity basicdataCodeRecordEntity = getBasicdataCodeRecordEntity(type, basicdataWarehouseEntity);
Integer inrc = basicdataCodeRecordEntity.getNum() + 1;
basicdataCodeRecordEntity.setNum(inrc);
basicdataCodeRecordService.updateById(basicdataCodeRecordEntity);
return warehouseCode+f+year+CommonUtil.geFourNumber(month.longValue(), 2)+CommonUtil.geFourNumber(inrc.longValue(),5);
return warehouseCode + f + basicdataCodeRecordEntity.getYear() + CommonUtil.geFourNumberByString(basicdataCodeRecordEntity.getMonth(), 2) + CommonUtil.geFourNumber(inrc.longValue(), 5);
}
private String generateTrunklineCarsLineCode(Integer type, String warehouseCode, String orderCode) {
if(!StringUtil.hasLength(warehouseCode)){
log.warn("############generateTrunklineCarsLineCode: 仓库编码为空warehouseCode={}",warehouseCode);
if (!StringUtil.hasLength(warehouseCode)) {
log.warn("############generateTrunklineCarsLineCode: 仓库编码为空warehouseCode={}", warehouseCode);
return null;
}
String f = "";
if("1".equals(orderCode)){
if ("1".equals(orderCode)) {
f = "GX";
}else if ("2".equals(orderCode)){
} else if ("2".equals(orderCode)) {
f = "ZX";
}else if ("3".equals(orderCode)){
} else if ("3".equals(orderCode)) {
f = "ZC";
}else {
} else {
return null;
}
BasicdataWarehouseEntity basicdataWarehouseEntity = basicdataWarehouseService.getWarehouseEntityByWarehouseCode(warehouseCode);
if(Objects.isNull(basicdataWarehouseEntity)){
log.warn("############getWayBillNo: 仓库信息不存在 warehouseCode={}",warehouseCode);
if (Objects.isNull(basicdataWarehouseEntity)) {
log.warn("############getWayBillNo: 仓库信息不存在 warehouseCode={}", warehouseCode);
return null;
}
Calendar calendar = Calendar.getInstance();
//获取年份
Integer year = calendar.get(Calendar.YEAR);
// 获取月份(注意月份从0开始计数)
Integer month = calendar.get(Calendar.MONTH) + 1;
BasicdataCodeRecordEntity basicdataCodeRecordEntity = getBasicdataCodeRecordEntity(type, basicdataWarehouseEntity);
BasicdataCodeRecordEntity basicdataCodeRecordEntity = basicdataCodeRecordService.findEntityByCodeTypeAndWarehouseCodeAndYearAndMonth(type,warehouseCode,year+"",month+"");
if(Objects.isNull(basicdataCodeRecordEntity)){
basicdataCodeRecordEntity = new BasicdataCodeRecordEntity();
basicdataCodeRecordEntity.setCodeType(type);
basicdataCodeRecordEntity.setWarehouseId(basicdataWarehouseEntity.getId());
basicdataCodeRecordEntity.setWarehouseName(basicdataWarehouseEntity.getName());
basicdataCodeRecordEntity.setWarehouseCode(warehouseCode);
basicdataCodeRecordEntity.setYear(year+"");
basicdataCodeRecordEntity.setMonth(month+"");
basicdataCodeRecordEntity.setNum(0);
basicdataCodeRecordService.save(basicdataCodeRecordEntity);
}
Integer inrc = basicdataCodeRecordEntity.getNum() + 1;
basicdataCodeRecordEntity.setNum(inrc);
basicdataCodeRecordService.updateById(basicdataCodeRecordEntity);
return warehouseCode+f+year+CommonUtil.geFourNumber(month.longValue(), 2)+CommonUtil.geFourNumber(inrc.longValue(), 5);
return warehouseCode + f + basicdataCodeRecordEntity.getYear() + CommonUtil.geFourNumberByString(basicdataCodeRecordEntity.getMonth(), 2) + CommonUtil.geFourNumber(inrc.longValue(), 5);
}
private String generateTrunklineBillladingCode(Integer type, String warehouseCode, String orderCode) {
if(!StringUtil.hasLength(warehouseCode)){
log.warn("############generateTrunklineBillladingCode: 仓库编码为空warehouseCode={}",warehouseCode);
if (!StringUtil.hasLength(warehouseCode)) {
log.warn("############generateTrunklineBillladingCode: 仓库编码为空warehouseCode={}", warehouseCode);
return null;
}
BasicdataWarehouseEntity basicdataWarehouseEntity = basicdataWarehouseService.getWarehouseEntityByWarehouseCode(warehouseCode);
if(Objects.isNull(basicdataWarehouseEntity)){
log.warn("############getWayBillNo: 仓库信息不存在 warehouseCode={}",warehouseCode);
if (Objects.isNull(basicdataWarehouseEntity)) {
log.warn("############getWayBillNo: 仓库信息不存在 warehouseCode={}", warehouseCode);
return null;
}
Calendar calendar = Calendar.getInstance();
//获取年份
Integer year = calendar.get(Calendar.YEAR);
// 获取月份(注意月份从0开始计数)
Integer month = calendar.get(Calendar.MONTH) + 1;
BasicdataCodeRecordEntity basicdataCodeRecordEntity = basicdataCodeRecordService.findEntityByCodeTypeAndWarehouseCodeAndYearAndMonth(type,warehouseCode,year+"",month+"");
BasicdataCodeRecordEntity basicdataCodeRecordEntity = getBasicdataCodeRecordEntity(type, basicdataWarehouseEntity);
if(Objects.isNull(basicdataCodeRecordEntity)){
basicdataCodeRecordEntity = new BasicdataCodeRecordEntity();
basicdataCodeRecordEntity.setCodeType(type);
basicdataCodeRecordEntity.setWarehouseId(basicdataWarehouseEntity.getId());
basicdataCodeRecordEntity.setWarehouseName(basicdataWarehouseEntity.getName());
basicdataCodeRecordEntity.setWarehouseCode(warehouseCode);
basicdataCodeRecordEntity.setYear(year+"");
basicdataCodeRecordEntity.setMonth(month+"");
basicdataCodeRecordEntity.setNum(0);
basicdataCodeRecordService.save(basicdataCodeRecordEntity);
}
Integer inrc = basicdataCodeRecordEntity.getNum() + 1;
basicdataCodeRecordEntity.setNum(inrc);
basicdataCodeRecordService.updateById(basicdataCodeRecordEntity);
return warehouseCode+"TH"+year+CommonUtil.geFourNumber(month.longValue(),2)+CommonUtil.geFourNumber(inrc.longValue(),5);
return warehouseCode + "TH" + basicdataCodeRecordEntity.getYear() + CommonUtil.geFourNumberByString(basicdataCodeRecordEntity.getMonth(), 2) + CommonUtil.geFourNumber(inrc.longValue(), 5);
}
private String generateExOrderCode(Integer type, String warehouseCode, String orderCode) {
if(!StringUtil.hasLength(warehouseCode)){
log.warn("############generateTraysCode: 仓库编码为空warehouseCode={}",warehouseCode);
if (!StringUtil.hasLength(warehouseCode)) {
log.warn("############generateTraysCode: 仓库编码为空warehouseCode={}", warehouseCode);
return null;
}
//HTEX+仓库code+年月日+(仓库当天的数量+1)
BasicdataWarehouseEntity basicdataWarehouseEntity = basicdataWarehouseService.getWarehouseEntityByWarehouseCode(warehouseCode);
if(Objects.isNull(basicdataWarehouseEntity)){
log.warn("############getWayBillNo: 仓库信息不存在 warehouseCode={}",warehouseCode);
if (Objects.isNull(basicdataWarehouseEntity)) {
log.warn("############getWayBillNo: 仓库信息不存在 warehouseCode={}", warehouseCode);
return null;
}
Calendar calendar = Calendar.getInstance();
//获取年份
Integer year = calendar.get(Calendar.YEAR);
// 获取月份(注意月份从0开始计数)
Integer month = calendar.get(Calendar.MONTH) + 1;
// 获取日期
Integer day = calendar.get(Calendar.DAY_OF_MONTH);
BasicdataCodeRecordEntity basicdataCodeRecordEntity = getBasicdataCodeRecordEntity(type, basicdataWarehouseEntity);
BasicdataCodeRecordEntity basicdataCodeRecordEntity = basicdataCodeRecordService.findEntityByCodeTypeAndWarehouseCodeAndYearAndMonth(type,warehouseCode,year+"",month+"");
if(Objects.isNull(basicdataCodeRecordEntity)){
basicdataCodeRecordEntity = new BasicdataCodeRecordEntity();
basicdataCodeRecordEntity.setCodeType(type);
basicdataCodeRecordEntity.setWarehouseId(basicdataWarehouseEntity.getId());
basicdataCodeRecordEntity.setWarehouseName(basicdataWarehouseEntity.getName());
basicdataCodeRecordEntity.setWarehouseCode(warehouseCode);
basicdataCodeRecordEntity.setYear(year+"");
basicdataCodeRecordEntity.setMonth(month+"");
basicdataCodeRecordEntity.setNum(0);
basicdataCodeRecordService.save(basicdataCodeRecordEntity);
}
Integer inrc = basicdataCodeRecordEntity.getNum() + 1;
basicdataCodeRecordEntity.setNum(inrc);
basicdataCodeRecordService.updateById(basicdataCodeRecordEntity);
return "HTEX"+warehouseCode+year+CommonUtil.geFourNumber(month.longValue(), 2)+CommonUtil.geFourNumber(day.longValue(), 2)+CommonUtil.geFourNumber(inrc.longValue(),5);
return "HTEX" + warehouseCode + basicdataCodeRecordEntity.getYear() + CommonUtil.geFourNumberByString(basicdataCodeRecordEntity.getMonth(), 2) + CommonUtil.geFourNumberByString(basicdataCodeRecordEntity.getDay(), 2) + CommonUtil.geFourNumber(inrc.longValue(), 5);
}
private String generateTraysCode(Integer type, String warehouseCode) {
BasicTenantCodeEntity basicTenantCode = tenantCodeClient.findBasicTenantCodeByCodeAndShowType(BasicCodeTypeConstant.TRAY_CODE.getValue(), BasicCodeShowConstant.QR_CODE.getValue());
if(Objects.isNull(basicTenantCode)){
log.warn("############generateTraysCode: 租户信息不存在basicTenantCode={}",basicTenantCode);
if (Objects.isNull(basicTenantCode)) {
log.warn("############generateTraysCode: 租户信息不存在basicTenantCode={}", basicTenantCode);
return null;
}
String desName = basicTenantCode.getDesName();
String code = basicTenantCode.getCode();
if(!StringUtil.hasLength(warehouseCode)){
log.warn("############generateTraysCode: 仓库编码为空warehouseCode={}",warehouseCode);
if (!StringUtil.hasLength(warehouseCode)) {
log.warn("############generateTraysCode: 仓库编码为空warehouseCode={}", warehouseCode);
return null;
}
//托盘 HT+仓库拼音+ 年月 +【当前仓库总数+1(五位数 不足补零)】
BasicdataWarehouseEntity basicdataWarehouseEntity = basicdataWarehouseService.getWarehouseEntityByWarehouseCode(warehouseCode);
if(Objects.isNull(basicdataWarehouseEntity)){
log.warn("############getWayBillNo: 仓库信息不存在 warehouseCode={}",warehouseCode);
if (Objects.isNull(basicdataWarehouseEntity)) {
log.warn("############getWayBillNo: 仓库信息不存在 warehouseCode={}", warehouseCode);
return null;
}
String abbreviation = basicdataWarehouseEntity.getAbbreviation();
Calendar calendar = Calendar.getInstance();
//获取年份
Integer year = calendar.get(Calendar.YEAR);
// 获取月份(注意月份从0开始计数)
Integer month = calendar.get(Calendar.MONTH) + 1;
BasicdataCodeRecordEntity basicdataCodeRecordEntity = basicdataCodeRecordService.findEntityByCodeTypeAndWarehouseCodeAndYearAndMonth(type,warehouseCode,year+"",month+"");
BasicdataCodeRecordEntity basicdataCodeRecordEntity = getBasicdataCodeRecordEntity(type, basicdataWarehouseEntity);
if(Objects.isNull(basicdataCodeRecordEntity)){
basicdataCodeRecordEntity = new BasicdataCodeRecordEntity();
basicdataCodeRecordEntity.setCodeType(type);
basicdataCodeRecordEntity.setWarehouseId(basicdataWarehouseEntity.getId());
basicdataCodeRecordEntity.setWarehouseName(basicdataWarehouseEntity.getName());
basicdataCodeRecordEntity.setWarehouseCode(warehouseCode);
basicdataCodeRecordEntity.setYear(year+"");
basicdataCodeRecordEntity.setMonth(month+"");
basicdataCodeRecordEntity.setNum(100000);
basicdataCodeRecordService.save(basicdataCodeRecordEntity);
}
Integer inrc = basicdataCodeRecordEntity.getNum() + 1;
basicdataCodeRecordEntity.setNum(inrc);
basicdataCodeRecordService.updateById(basicdataCodeRecordEntity);
String trayCode = code+ warehouseCode + (year%100) + inrc;
String trayCode = code + warehouseCode + (Integer.parseInt(basicdataCodeRecordEntity.getYear()) % 100) + inrc;
String trayName = desName + abbreviation + inrc;
return trayCode+"&&"+trayName;
return trayCode + "&&" + trayName;
}
/**
* 生成仓库对应的运单号
*
* @param type
* @param warehouseCode
* @return
*/
private String getWayBillNo(Integer type, String warehouseCode) {
if(!StringUtil.hasLength(warehouseCode)){
log.warn("############getWayBillNo: 仓库编码为空warehouseCode={}",warehouseCode);
if (!StringUtil.hasLength(warehouseCode)) {
log.warn("############getWayBillNo: 仓库编码为空warehouseCode={}", warehouseCode);
return null;
}
BasicdataWarehouseEntity basicdataWarehouseEntity = basicdataWarehouseService.getWarehouseEntityByWarehouseCode(warehouseCode);
if(Objects.isNull(basicdataWarehouseEntity)){
log.warn("############getWayBillNo: 仓库信息不存在 warehouseCode={}",warehouseCode);
if (Objects.isNull(basicdataWarehouseEntity)) {
log.warn("############getWayBillNo: 仓库信息不存在 warehouseCode={}", warehouseCode);
return null;
}
Calendar calendar = Calendar.getInstance();
//获取年份
Integer year = calendar.get(Calendar.YEAR);
// 获取月份(注意月份从0开始计数)
Integer month = calendar.get(Calendar.MONTH) + 1;
BasicdataCodeRecordEntity basicdataCodeRecordEntity = basicdataCodeRecordService.findEntityByCodeTypeAndWarehouseCodeAndYearAndMonth(type,warehouseCode,year+"",month+"");
if(Objects.isNull(basicdataCodeRecordEntity)){
basicdataCodeRecordEntity = new BasicdataCodeRecordEntity();
basicdataCodeRecordEntity.setCodeType(type);
basicdataCodeRecordEntity.setWarehouseId(basicdataWarehouseEntity.getId());
basicdataCodeRecordEntity.setWarehouseName(basicdataWarehouseEntity.getName());
basicdataCodeRecordEntity.setWarehouseCode(warehouseCode);
basicdataCodeRecordEntity.setYear(year+"");
basicdataCodeRecordEntity.setMonth(month+"");
basicdataCodeRecordEntity.setNum(0);
basicdataCodeRecordService.save(basicdataCodeRecordEntity);
}
BasicdataCodeRecordEntity basicdataCodeRecordEntity = getBasicdataCodeRecordEntity(type, basicdataWarehouseEntity);
Integer inrc = basicdataCodeRecordEntity.getNum() + 1;
basicdataCodeRecordEntity.setNum(inrc);
basicdataCodeRecordService.updateById(basicdataCodeRecordEntity);
return warehouseCode+year+CommonUtil.geFourNumber(month.longValue(),2)+CommonUtil.geFourNumber(inrc.longValue(),5);
return warehouseCode + basicdataCodeRecordEntity.getYear() + CommonUtil.geFourNumberByString(basicdataCodeRecordEntity.getMonth(), 2) + CommonUtil.geFourNumber(inrc.longValue(), 5);
}
@ -521,22 +399,23 @@ public class BasicdataCodeServiceImpl implements IBasicdataCodeService {
String tenantCode = basicTenantCodeClient.shelfCode(tenantId, String.valueOf(type));//租户编码
//获得年月日短字符串
String dateShort = CommonUtil.dateToStringShort(new Date());
String key = tenantId + ":" + warehouseCode + ":" + des+":"+dateShort;
String key = tenantId + ":" + warehouseCode + ":" + des + ":" + dateShort;
//获得序号
Long incr = bladeRedis.incr(key);
if(1 == incr){
if (1 == incr) {
//如果为1就是刚刚才建立,给他一个过期时间
bladeRedis.expireAt(key,CommonUtil.getDayEnd());
bladeRedis.expireAt(key, CommonUtil.getDayEnd());
}
return tenantCode+warehouseCode+dateShort+CommonUtil.geFourNumber(incr,5);
return tenantCode + warehouseCode + dateShort + CommonUtil.geFourNumber(incr, 5);
}
/**
* 生成配送车次号编码
*
* @param type
*/
private String generateDeliveryTrainNumber(Integer type,String warehouseCode) {
private String generateDeliveryTrainNumber(Integer type, String warehouseCode) {
String des = CodeDesEnum.getMes(type);//摘要
String tenantId = AuthUtil.getTenantId();//租户号
// String tenantId = "627683";//租户号
@ -545,25 +424,25 @@ public class BasicdataCodeServiceImpl implements IBasicdataCodeService {
String dateShort = CommonUtil.dateToStringShort(new Date());
//redis的key
String key = tenantId + ":" + warehouseCode + ":" + des+":"+dateShort;
String key = tenantId + ":" + warehouseCode + ":" + des + ":" + dateShort;
//获得序号
Long incr = bladeRedis.incr(key);
if(1 == incr){
if (1 == incr) {
//如果为1就是刚刚才建立,给他一个过期时间
bladeRedis.expireAt(key,CommonUtil.getDayEnd());
bladeRedis.expireAt(key, CommonUtil.getDayEnd());
}
return warehouseCode + des + dateShort + CommonUtil.geFourNumber(incr,5);
return warehouseCode + des + dateShort + CommonUtil.geFourNumber(incr, 5);
}
private String generatePackageCode(Integer type,String warehouseCode,String orderCode) {
if(!StringUtil.hasLength(warehouseCode)){
log.warn("############generatePackageCode: 仓库编码为空warehouseCode={}",warehouseCode);
private String generatePackageCode(Integer type, String warehouseCode, String orderCode) {
if (!StringUtil.hasLength(warehouseCode)) {
log.warn("############generatePackageCode: 仓库编码为空warehouseCode={}", warehouseCode);
return null;
}
if(!StringUtil.hasLength(orderCode)){
log.warn("############generatePackageCode: 订单号为空orderCode={}",orderCode);
if (!StringUtil.hasLength(orderCode)) {
log.warn("############generatePackageCode: 订单号为空orderCode={}", orderCode);
return null;
}
@ -571,37 +450,17 @@ public class BasicdataCodeServiceImpl implements IBasicdataCodeService {
String haxCodeByLong = CommonUtil.getHaxCodeByLong(orderCode, 8);
BasicdataWarehouseEntity basicdataWarehouseEntity = basicdataWarehouseService.getWarehouseEntityByWarehouseCode(warehouseCode);
if(Objects.isNull(basicdataWarehouseEntity)){
log.warn("############getWayBillNo: 仓库信息不存在 warehouseCode={}",warehouseCode);
if (Objects.isNull(basicdataWarehouseEntity)) {
log.warn("############getWayBillNo: 仓库信息不存在 warehouseCode={}", warehouseCode);
return null;
}
Calendar calendar = Calendar.getInstance();
//获取年份
Integer year = calendar.get(Calendar.YEAR);
// 获取月份(注意月份从0开始计数)
Integer month = calendar.get(Calendar.MONTH) + 1;
BasicdataCodeRecordEntity basicdataCodeRecordEntity = basicdataCodeRecordService.findEntityByCodeTypeAndWarehouseCodeAndYearAndMonth(type,warehouseCode,year+"",month+"");
if(Objects.isNull(basicdataCodeRecordEntity)){
basicdataCodeRecordEntity = new BasicdataCodeRecordEntity();
basicdataCodeRecordEntity.setCodeType(type);
basicdataCodeRecordEntity.setWarehouseId(basicdataWarehouseEntity.getId());
basicdataCodeRecordEntity.setWarehouseName(basicdataWarehouseEntity.getName());
basicdataCodeRecordEntity.setWarehouseCode(warehouseCode);
basicdataCodeRecordEntity.setYear(year+"");
basicdataCodeRecordEntity.setMonth(month+"");
basicdataCodeRecordEntity.setNum(0);
basicdataCodeRecordService.save(basicdataCodeRecordEntity);
}
BasicdataCodeRecordEntity basicdataCodeRecordEntity = getBasicdataCodeRecordEntity(type, basicdataWarehouseEntity);
Integer inrc = basicdataCodeRecordEntity.getNum() + 1;
basicdataCodeRecordEntity.setNum(inrc);
basicdataCodeRecordService.updateById(basicdataCodeRecordEntity);
return "HT" + warehouseCode + year + CommonUtil.geFourNumber(month.longValue(),2) + haxCodeByLong + CommonUtil.geFourNumber(inrc.longValue(),6);
return "HT" + warehouseCode + basicdataCodeRecordEntity.getYear() + CommonUtil.geFourNumberByString(basicdataCodeRecordEntity.getMonth(), 2) + haxCodeByLong + CommonUtil.geFourNumber(inrc.longValue(), 6);
}
}

1
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataTrayServiceImpl.java

@ -228,6 +228,7 @@ public class BasicdataTrayServiceImpl extends BaseServiceImpl<BasicdataTrayMappe
Map<String, Object> map = JSONObject.parseObject(JSONObject.toJSONString(trayQRCode), Map.class);
String filename = QRCodeUtil.createCodeToFile(trayQRCode.getTrayCode());
map.put("qrCode", QRCodeUtil.getEmpAutograph(filename));
map.put("palletName", trayQRCode.getPalletName());
String fileTypeName = QRCodeUtil.createCodeToFileType(trayQRCode.getTrayCode());
map.put("imgType", QRCodeUtil.getEmpAutograph(fileTypeName));
map.put("tenant","汇通物流");

3
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/api/DistributionAddvalueAppController.java

@ -2,6 +2,7 @@ package com.logpm.distribution.api;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.logpm.distribution.dto.DistributionAddvaluePackageDTO;
import com.logpm.distribution.dto.app.DistributionAppAddvalueDTO;
import com.logpm.distribution.service.impl.DistributionAddvalueServiceImpl;
import com.logpm.distribution.vo.DistributionAddvaluePackageVO;
@ -67,7 +68,7 @@ public class DistributionAddvalueAppController {
@ApiOperationSupport(order = 3)
@ApiOperation(value = "查询该客户下的所有配送包件信息", notes = "DistributionAppDeliveryListDTO")
public R getAllPackageList(@Valid @RequestBody DistributionAppAddvalueDTO distributionAppAddvalueDTO) {
List<DistributionAddvaluePackageVO> allPackageList = distributionAddvalueService.getAllPackageList(distributionAppAddvalueDTO);
List<DistributionAddvaluePackageDTO> allPackageList = distributionAddvalueService.getAllPackageList(distributionAppAddvalueDTO);
return R.data(200,allPackageList,"成功");
}

21
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockArticleController.java

@ -18,6 +18,7 @@ package com.logpm.distribution.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.logpm.basicdata.entity.BasicdataClientEntity;
import com.logpm.basicdata.entity.BasicdataClientUserEntity;
import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
import com.logpm.basicdata.feign.IBasicdataClientClient;
@ -36,6 +37,7 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.DistributionTypeConstant;
import org.springblade.common.constant.orderpackage.OrderPackageReservationStatusConstant;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.excel.util.ExcelUtil;
@ -377,8 +379,6 @@ public class DistributionStockArticleController extends BladeController {
@ApiOperationSupport(order = 5)
@ApiOperation(value = "修改", notes = "传入distributionStockArticle")
public R updateBatchClient(@Valid @RequestBody DistributionStockArticleDTO distributionStockArticleDTO) {
// 获取勾选的需要修改的订单信息
List<Long> ids = distributionStockArticleDTO.getEntityList().stream().map(DistributionStockArticleEntity::getId).collect(Collectors.toList());
// 查询这个订单集合的预约状态
@ -386,10 +386,13 @@ public class DistributionStockArticleController extends BladeController {
List<DistributionStockArticleEntity> entityList = distributionStockArticleDTO.getEntityList();
if (!realStockArticleList.isEmpty()) {
boolean flag = realStockArticleList.stream().anyMatch(a -> !OrderPackageReservationStatusConstant.daiyuyue.getValue().equals(a.getReservationStatus()));
if (flag) {
String orderCode = realStockArticleList.stream().filter(f -> !OrderPackageReservationStatusConstant.daiyuyue.getValue().equals(f.getReservationStatus())).map(DistributionStockArticleEntity::getOrderCode).distinct().collect(Collectors.joining(","));
return R.fail(orderCode + "存在预约信息");
boolean isCheck = realStockArticleList.stream().allMatch(r -> DistributionTypeConstant.shipie.getValue().equals(r.getTypeService()));
if (!isCheck){
boolean flag = realStockArticleList.stream().anyMatch(a -> !OrderPackageReservationStatusConstant.daiyuyue.getValue().equals(a.getReservationStatus()));
if (flag) {
String orderCode = realStockArticleList.stream().filter(f -> !OrderPackageReservationStatusConstant.daiyuyue.getValue().equals(f.getReservationStatus())).map(DistributionStockArticleEntity::getOrderCode).distinct().collect(Collectors.joining(","));
return R.fail(orderCode + "存在预约信息");
}
}
}
@ -411,7 +414,13 @@ public class DistributionStockArticleController extends BladeController {
newStockArticle.setCustomerTelephone(stockArticleEntity.getCustomerTelephone());
newStockArticle.setCustomerAddress(stockArticleEntity.getCustomerAddress());
} else {
BasicdataClientEntity client = basicdataClientClient.findByName(mallName);
if (Func.isEmpty(client)){
throw new RuntimeException("客户信息错误!!!");
}
newStockArticle.setMallName(mallName);
stockArticleEntity.setMallId(client.getId());
stockArticleEntity.setMallCode(client.getClientCode());
newStockArticle.setConsigneeUnit(consigneeUnit);
}
String content = oldStockArticle.compareCustomerInfo(newStockArticle);

28
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java

@ -185,19 +185,19 @@ public interface DistributionReservationMapper extends BaseMapper<DistributionRe
List<DisStockListDetailEntity> selectInventoryListByReservation(@Param("reservationId") Long reservationId);
/**
* 查询客户下的库存品信息
* @param reservationId
* @return
*/
List<DistributionAddvaluePackageVO> selectAppInventoryListByReservation(@Param("reservationId") Long reservationId);
// /**
// * 查询客户下的库存品信息
// * @param reservationId
// * @return
// */
// List<DistributionAddvaluePackageVO> selectAppInventoryListByReservation(@Param("reservationId") Long reservationId);
/**
* 查询客户下的包件信息
* @param reservationId
* @return
*/
List<DistributionAddvaluePackageVO> selectAppPackageListByReservationId(@Param("reservationId")Long reservationId);
// /**
// * 查询客户下的包件信息
// * @param reservationId
// * @return
// */
// List<DistributionAddvaluePackageVO> selectAppPackageListByReservationId(@Param("reservationId")Long reservationId);
/**
* 查询出客户下的库存品订单维度信息
@ -263,8 +263,8 @@ public interface DistributionReservationMapper extends BaseMapper<DistributionRe
*/
List<DistributionParcelNumberDTO> selectZeroPackageListByReservationId(@Param("reservationId")Long reservationId);
//查询零担品类包件信息
List<DistributionAddvaluePackageVO> selectAppZeroPackageListByReservationId(@Param("reservationId")Long reservationId);
// //查询零担品类包件信息
// List<DistributionAddvaluePackageVO> selectAppZeroPackageListByReservationId(@Param("reservationId")Long reservationId);
/**
* 查询商场客户的预约单

139
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml

@ -900,57 +900,58 @@
WHERE
ldr.id = #{reservationId} and ldsld.stock_package_status in ('1','3')
</select>
<select id="selectAppInventoryListByReservation"
resultType="com.logpm.distribution.vo.DistributionAddvaluePackageVO">
SELECT
ldsld.stock_list_id AS stockArticleId,
ldsld.id AS packageId,
ldsld.stock_package_code AS orderPackageCode,
ldsld.tenant_id AS tenantId,
ldsl.description_goods AS materialName,
ldsld.num AS quantity,
2 conditions,
ldsl.create_user AS createUser,
ldsl.create_dept AS createDept,
ldsl.create_time AS createTime,
ldsl.update_user AS updateUser,
ldsl.update_time AS updateTime,
ldsl.status AS status,
ldsl.is_deleted AS isDeleted,
ldsl.tenant_id AS tenantId,
ldsld.reservation_id AS reservationId
FROM
logpm_distribution_reservation AS ldr
INNER JOIN logpm_dis_stock_list_detail AS ldsld ON ldr.id = ldsld.reservation_id
INNER JOIN logpm_distribution_stock_list AS ldsl ON ldsl.id = ldsld.stock_list_id
WHERE
ldr.id = #{reservationId} and ldsld.stock_package_status in ('1','3')
</select>
<select id="selectAppPackageListByReservationId"
resultType="com.logpm.distribution.vo.DistributionAddvaluePackageVO">
SELECT
ldpl.stock_article_id AS stockArticleId,
ldpl.order_package_code AS orderPackageCode,
ldpl.material_name AS materialName,
ldpl.order_code AS orderCode,
ldpl.quantity AS quantity,
1 AS conditions,
ldpl.create_user AS createUser,
ldpl.create_dept AS createDept,
ldpl.create_time AS createTime,
ldpl.update_user AS updateUser,
ldpl.update_time AS updateTime,
ldpl.status AS status,
ldpl.is_deleted AS isDeleted,
ldpl.tenant_id AS tenantId,
ldrs.reservation_id AS reservationId,
ldpl.id AS packageId
FROM
logpm_distribution_reservation_package AS ldrs
INNER JOIN logpm_distribution_parcel_list AS ldpl ON ldrs.parce_list_id = ldpl.id
WHERE
ldrs.packet_bar_status IN ('1','3') and reservation_id = #{reservationId}
</select>
<!-- <select id="selectAppInventoryListByReservation"-->
<!-- resultType="com.logpm.distribution.vo.DistributionAddvaluePackageVO">-->
<!-- SELECT-->
<!-- ldsld.stock_list_id AS stockArticleId,-->
<!-- ldsld.id AS packageId,-->
<!-- ldsld.stock_package_code AS orderPackageCode,-->
<!-- ldsld.tenant_id AS tenantId,-->
<!-- ldsl.description_goods AS materialName,-->
<!-- ldsld.num AS quantity,-->
<!-- 2 conditions,-->
<!-- ldsl.create_user AS createUser,-->
<!-- ldsl.create_dept AS createDept,-->
<!-- ldsl.create_time AS createTime,-->
<!-- ldsl.update_user AS updateUser,-->
<!-- ldsl.update_time AS updateTime,-->
<!-- ldsl.status AS status,-->
<!-- ldsl.is_deleted AS isDeleted,-->
<!-- ldsl.tenant_id AS tenantId,-->
<!-- ldsld.reservation_id AS reservationId-->
<!-- FROM-->
<!-- logpm_distribution_reservation AS ldr-->
<!-- INNER JOIN logpm_dis_stock_list_detail AS ldsld ON ldr.id = ldsld.reservation_id-->
<!-- INNER JOIN logpm_distribution_stock_list AS ldsl ON ldsl.id = ldsld.stock_list_id-->
<!-- WHERE-->
<!-- ldr.id = #{reservationId} and ldsld.stock_package_status in ('1','3')-->
<!-- </select>-->
<!-- <select id="selectAppPackageListByReservationId"-->
<!-- resultType="com.logpm.distribution.vo.DistributionAddvaluePackageVO">-->
<!-- SELECT-->
<!-- ldpl.stock_article_id AS stockArticleId,-->
<!-- ldpl.order_package_code AS orderPackageCode,-->
<!-- ldpl.material_name AS materialName,-->
<!-- ldpl.order_code AS orderCode,-->
<!-- ldpl.quantity AS quantity,-->
<!-- 1 AS conditions,-->
<!-- ldpl.create_user AS createUser,-->
<!-- ldpl.create_dept AS createDept,-->
<!-- ldpl.create_time AS createTime,-->
<!-- ldpl.update_user AS updateUser,-->
<!-- ldpl.update_time AS updateTime,-->
<!-- ldpl.status AS status,-->
<!-- ldpl.is_deleted AS isDeleted,-->
<!-- ldpl.tenant_id AS tenantId,-->
<!-- ldrs.reservation_id AS reservationId,-->
<!-- ldpl.id AS packageId-->
<!-- FROM-->
<!-- logpm_distribution_reservation_package AS ldrs-->
<!-- LEFT JOIN logpm_distribution_parcel_list AS ldpl ON ldrs.parce_list_id = ldpl.id-->
<!-- LEFT JOIN logpm_distribution_reservation AS ldr ON ldrs.reservation_id = ldr.id-->
<!-- WHERE-->
<!-- ldrs.packet_bar_status IN ('1','3') and reservation_id = #{reservationId}-->
<!-- </select>-->
<select id="selectStockListByReservationId"
resultType="com.logpm.distribution.entity.DistributionReservationStocklistEntity">
SELECT
@ -1250,24 +1251,24 @@
ldrzp.reservation_id=#{reservationId} and ldrs.stock_article_status in ('1','3') AND ldrzp.zero_package_status
IN ( '1', '3' )
</select>
<select id="selectAppZeroPackageListByReservationId"
resultType="com.logpm.distribution.vo.DistributionAddvaluePackageVO">
SELECT
ldrzp.parcel_list_id,
ldrzp.quantity AS reservationNum,
ldrzp.reservation_id AS reservationId,
3 AS conditions,
ldsa.order_code AS orderCode,
ldsa.id AS stockArticleId,
ldpl.id AS packageId
FROM
logpm_distribution_reservation_stockarticle AS ldrs
INNER JOIN logpm_distribution_stock_article AS ldsa ON ldrs.stock_article_id = ldsa.id
LEFT JOIN logpm_distribution_reservation_zero_package AS ldrzp ON ldrs.stock_article_id = ldrzp.stock_article_id
AND ldrs.reservation_id = ldrzp.reservation_id
INNER JOIN logpm_distribution_parcel_list As ldpl ON ldrzp.parcel_list_id = ldpl.id
WHERE ldrs.reservation_id =#{reservationId}
</select>
<!-- <select id="selectAppZeroPackageListByReservationId"-->
<!-- resultType="com.logpm.distribution.vo.DistributionAddvaluePackageVO">-->
<!-- SELECT-->
<!-- ldrzp.parcel_list_id,-->
<!-- ldrzp.quantity AS reservationNum,-->
<!-- ldrzp.reservation_id AS reservationId,-->
<!-- 3 AS conditions,-->
<!-- ldsa.order_code AS orderCode,-->
<!-- ldsa.id AS stockArticleId,-->
<!-- ldpl.id AS packageId-->
<!-- FROM-->
<!-- logpm_distribution_reservation_stockarticle AS ldrs-->
<!-- INNER JOIN logpm_distribution_stock_article AS ldsa ON ldrs.stock_article_id = ldsa.id-->
<!-- LEFT JOIN logpm_distribution_reservation_zero_package AS ldrzp ON ldrs.stock_article_id = ldrzp.stock_article_id-->
<!-- AND ldrs.reservation_id = ldrzp.reservation_id-->
<!-- INNER JOIN logpm_distribution_parcel_list As ldpl ON ldrzp.parcel_list_id = ldpl.id-->
<!-- WHERE ldrs.reservation_id =#{reservationId}-->
<!-- </select>-->
<select id="selectReservationLoadingNum" resultType="com.logpm.distribution.dto.DistributionLoadingNumDTO">
SELECT
IF

2
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.xml

@ -893,7 +893,7 @@
IFNULL(SUM(ldbls.quantity),0) AS actual_plan,
IFNULL(SUM(ldbls.quantity),0) AS delivery,
IFNULL(SUM(ldbls.quantity),0) AS sign,
(SELECT GROUP_CONCAT(site) FROM logpm_distribution_print WHERE bill_lading_id = ldbl.id GROUP BY bill_lading_id) AS image
IFNULL((SELECT GROUP_CONCAT(site) FROM logpm_distribution_print WHERE bill_lading_id = ldbl.id GROUP BY bill_lading_id),'无图片信息') AS image
FROM
logpm_distrilbution_bill_lading AS ldbl
LEFT JOIN logpm_distribution_bill_lading_scan AS ldbls ON ldbls.bill_lading_id = ldbl.id AND ldbls.is_deleted = 0

3
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionAddvalueService.java

@ -20,6 +20,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.logpm.distribution.dto.DistributionAddvalueDTO;
import com.logpm.distribution.dto.DistributionAddvaluePackageDTO;
import com.logpm.distribution.dto.app.DistributionAppAddvalueDTO;
import com.logpm.distribution.entity.DistributionAddvalueEntity;
import com.logpm.distribution.entity.DistributionAddvaluePackageEntity;
@ -90,7 +91,7 @@ public interface IDistributionAddvalueService extends IService<DistributionAddva
* @param distributionAppAddvalueDTO
* @return
*/
List<DistributionAddvaluePackageVO> getAllPackageList(DistributionAppAddvalueDTO distributionAppAddvalueDTO);
List<DistributionAddvaluePackageDTO> getAllPackageList(DistributionAppAddvalueDTO distributionAppAddvalueDTO);
/**
* 修改增值服务列表

555
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAddvalueServiceImpl.java

@ -68,33 +68,33 @@ import java.util.stream.Collectors;
public class DistributionAddvalueServiceImpl extends BaseServiceImpl<DistributionAddvalueMapper, DistributionAddvalueEntity> implements IDistributionAddvalueService {
@Autowired
private DistributionAddvalueMapper distributionAddvalueMapper;
private DistributionAddvalueMapper distributionAddvalueMapper;
@Autowired
private DistributionReservationMapper distributionReservationMapper;
private DistributionReservationMapper distributionReservationMapper;
@Autowired
private IDistributionStockListService distributionStockListService;
private IDistributionStockListService distributionStockListService;
@Autowired
private DistributionDeliveryListMapper distributionDeliveryListMapper;
private DistributionDeliveryListMapper distributionDeliveryListMapper;
@Autowired
// private IDistributionAddvalueService distributionAddvalueService;
private IDistributionAddvaluePackageService distributionAddvaluePackageService;
private IDistributionAddvaluePackageService distributionAddvaluePackageService;
@Autowired
private IDistributionAddvalueDetailService distributionAddvalueDetailService;
private IDistributionAddvalueDetailService distributionAddvalueDetailService;
@Autowired
private DistributionAddvalueDetailMapper distributionAddvalueDetailMapper;
private DistributionAddvalueDetailMapper distributionAddvalueDetailMapper;
@Autowired
private DistributionAddvaluePackageMapper distributionAddvaluePackageMapper;
private DistributionAddvaluePackageMapper distributionAddvaluePackageMapper;
@Autowired
private IDistributionLoadscanService distributionLoadscanService;
private IDistributionLoadscanService distributionLoadscanService;
@Autowired
private IBasicdataPriceClient basicdataPriceClient;
private IBasicdataPriceClient basicdataPriceClient;
@Autowired
private IBasicdataClientClient basicdataClientClient;
private IBasicdataClientClient basicdataClientClient;
@Autowired
private IBasicdataFactoryCategoryClient basicdataFactoryCategoryClient;
private IBasicdataFactoryCategoryClient basicdataFactoryCategoryClient;
@Autowired
@Lazy
private IDistributionSignforService distributionSignforService;
private IDistributionSignforService distributionSignforService;
@Override
@ -122,107 +122,38 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
@Override
public R scanAddvaluePackage(DistributionAppAddvalueDTO distributionAppAddvalueDTO) {
Long reservationId = distributionAppAddvalueDTO.getReservationId();
List<DistributionParcelListEntity> parcelListEntityList = distributionReservationMapper.selectPackageListByReservationId(reservationId);
List<DisStockListDetailEntity> detailEntities = distributionReservationMapper.selectInventoryListByReservation(reservationId);
if (Func.isEmpty(parcelListEntityList) && Func.isEmpty(detailEntities)) {
//该客户不存在包件信息
return Resp.scanFail("客户信息有误!!!", "客户信息有误");
if (Objects.isNull(distributionAppAddvalueDTO.getReservationId())){
log.error("#####################参数缺失reservationId");
}
List<Long> packageListIds = distributionAppAddvalueDTO.getPackageListIds();
Integer isManual = distributionAppAddvalueDTO.getIsManual();
List<DistributionParcelListEntity> collect1 = parcelListEntityList.stream().filter(p -> packageListIds.contains(p.getId())).collect(Collectors.toList());
if (collect1.size() == 1) {
return Resp.scanFail("重复扫描", "重复扫描");
List<DistributionAddvaluePackageDTO> allPackageList = this.getAllPackageList(distributionAppAddvalueDTO);
if (allPackageList.isEmpty()) {
log.error("#####################预约计划下无包件信息reservationId:{}",distributionAppAddvalueDTO.getReservationId());
}
List<DisStockListDetailEntity> collect2 = detailEntities.stream().filter(i -> packageListIds.contains(i.getId())).collect(Collectors.toList());
if (collect2.size() == 1) {
return Resp.scanFail("重复扫描", "重复扫描");
if (Objects.isNull(distributionAppAddvalueDTO.getBarcode())){
log.error("#####################参数缺失Barcode");
}
List<DistributionParcelListEntity> packageInfo = parcelListEntityList.stream().filter(p -> p.getOrderPackageCode().equals(distributionAppAddvalueDTO.getBarcode())).collect(Collectors.toList());
// DistributionAddvaluePackageEntity distributionAddvaluePackageEntiy = new DistributionAddvaluePackageEntity();
if (Func.isNotEmpty(packageInfo) && packageInfo.size() == 1) {
DistributionParcelListEntity parcelListEntity = packageInfo.get(0);
DistributionAddvaluePackageEntity distributionAddvaluePackageEntiy = Func.copy(parcelListEntity, DistributionAddvaluePackageEntity.class);
assert distributionAddvaluePackageEntiy != null;
distributionAddvaluePackageEntiy.setConditions(1);
distributionAddvaluePackageEntiy.setId(null);
distributionAddvaluePackageEntiy.setQuantity(parcelListEntity.getQuantity());
distributionAddvaluePackageEntiy.setPackageId(parcelListEntity.getId());
distributionAddvaluePackageEntiy.setMaterialName(parcelListEntity.getMaterialName());
distributionAddvaluePackageEntiy.setReservationId(distributionAppAddvalueDTO.getReservationId());
distributionAddvaluePackageEntiy.setStockArticleId(parcelListEntity.getStockArticleId());
distributionAddvaluePackageEntiy.setOrderPackageCode(parcelListEntity.getOrderPackageCode());
distributionAddvaluePackageEntiy.setRecordType("1");
if (isManual.equals(2)) {
distributionAddvaluePackageEntiy.setRecordType("1");
List<DistributionAddvaluePackageDTO> scanList = allPackageList.stream().filter(f -> distributionAppAddvalueDTO.getBarcode().equals(f.getOrderPackageCode())).collect(Collectors.toList());
if (!scanList.isEmpty()) {
//存在
if (scanList.size() == 1){
return R.data(scanList.get(0));
}else {
log.error("增值服务扫描计划内包件错误,同一包件存在多个");
}
//查询包件的结算单位
}
//不存在这里就需要进行系统是否存在该包件进行判断
log.error("增值服务扫描计划内包件错误,不存在此包件");
//判断怎么不存在
return Resp.scanFail("计划内无此包件信息","计划内无此包件信息");
return Res.scanSuccess("扫描成功", "扫描成功", distributionAddvaluePackageEntiy);
} else if (packageInfo.isEmpty()) {
//包件列表不存在,这里查询看库存品是否存在?
List<DisStockListDetailEntity> inventoryInfo = detailEntities.stream().filter(i -> Func.isNotEmpty(i.getStockPackageCode()) && i.getStockPackageCode().equals(distributionAppAddvalueDTO.getBarcode())).collect(Collectors.toList());
if (Func.isNotEmpty(inventoryInfo) && inventoryInfo.size() == 1) {
DisStockListDetailEntity disStockListDetailEntity = inventoryInfo.get(0);
DistributionStockListEntity stockListEntity = distributionStockListService.getById(disStockListDetailEntity.getStockListId());
DistributionAddvaluePackageEntity distributionAddvaluePackageEntiy = Func.copy(disStockListDetailEntity, DistributionAddvaluePackageEntity.class);
assert distributionAddvaluePackageEntiy != null;
distributionAddvaluePackageEntiy.setConditions(2);
distributionAddvaluePackageEntiy.setQuantity(disStockListDetailEntity.getNum());
distributionAddvaluePackageEntiy.setPackageId(disStockListDetailEntity.getId());
distributionAddvaluePackageEntiy.setMaterialName(stockListEntity.getDescriptionGoods());
distributionAddvaluePackageEntiy.setReservationId(distributionAppAddvalueDTO.getReservationId());
distributionAddvaluePackageEntiy.setStockArticleId(disStockListDetailEntity.getStockListId());
distributionAddvaluePackageEntiy.setOrderPackageCode(disStockListDetailEntity.getStockPackageCode());
distributionAddvaluePackageEntiy.setRecordType("1");
if (isManual.equals(2)) {
distributionAddvaluePackageEntiy.setRecordType("1");
}
return Res.scanSuccess("扫描成功", "扫描成功", distributionAddvaluePackageEntiy);
} else if (inventoryInfo.size() == 0) {
//该客户下既不存在该包件,也不存在该库存品 ---
//查询是否属于该配送任务
List<DistributionParcelListEntity> parcelListEntities = distributionDeliveryListMapper.selectPackageListByDeliveryListId(distributionAppAddvalueDTO.getDeliveryId());
if (Func.isNotEmpty(parcelListEntities)) {
List<DistributionParcelListEntity> collect = parcelListEntities.stream().filter(s -> s.getOrderPackageCode().equals(distributionAppAddvalueDTO.getBarcode())).collect(Collectors.toList());
if (Func.isNotEmpty(collect)) {
return Resp.scanFail("扫描失败", "窜货");
}
} else {
//查询是否该配送任务中是否存在该库存品包件信息
List<DisStockListDetailEntity> stockListDetailEntities = distributionDeliveryListMapper.selectInventoryListByDeliveryListId(distributionAppAddvalueDTO.getDeliveryId());
if (Func.isNotEmpty(stockListDetailEntities)) {
List<DisStockListDetailEntity> detailEntityList = stockListDetailEntities.stream().filter(s -> s.getStockPackageCode().equals(distributionAppAddvalueDTO.getBarcode())).collect(Collectors.toList());
if (Func.isNotEmpty(detailEntityList)) {
return Resp.scanFail("扫描失败", "窜货");
}
} else {
return Resp.scanFail("扫描失败", "此码无效");
}
}
} else {
log.error("出现一个客户下重复库存品包件码的情况");
return Resp.scanFail("扫描失败", "窜货");
}
} else {
log.error("出现一个客户下重复包件码的情况");
return Resp.scanFail("扫描失败", "窜货");
}
return null;
}
}
@Override
@Transactional
public R saveAddvalueInfo(DistributionAppAddvalueDTO distributionAppAddvalueDTO) {
List<DistributionAddvaluePackageDTO> packageEntityList = distributionAppAddvalueDTO.getPackageEntityList();
List<DistributionAddvaluePackageDTO> packageDTOList = packageEntityList.stream().filter(p -> Func.isNotEmpty(p.getQuantity()) && p.getQuantity() > 0).collect(Collectors.toList());
if (Func.isEmpty(packageDTOList)) {
return Resp.scanFail("操作失败", "无可用包件信息");
}
//查询是否重复添加
DistributionAddvalueEntity addvalueEntity = distributionAddvalueMapper.selectOne(Wrappers.<DistributionAddvalueEntity>query().lambda()
.eq(DistributionAddvalueEntity::getAddvalueId, distributionAppAddvalueDTO.getAddvalueType())
@ -257,6 +188,7 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
} else {
distributionAddvalueDetailEntity.setDistance(distributionAppAddvalueDTO.getDistance());
}
break;
case "3":
if (Func.isEmpty(distributionAppAddvalueDTO.getDistance())) {
@ -265,24 +197,29 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
distributionAddvalueDetailEntity.setDistance(distributionAppAddvalueDTO.getDistance());
}
break;
case "4":
case "5":
if (Func.isEmpty(distributionAppAddvalueDTO.getNum())) {
return Resp.scanFail("添加失败", "请输入件数");
} else {
distributionAddvalueDetailEntity.setNum(packageEntityList.stream().mapToInt(DistributionAddvaluePackageEntity::getQuantity).sum());
}
break;
case "6":
if (Func.isEmpty(distributionAppAddvalueDTO.getFee())) {
return Resp.scanFail("添加失败", "请输入件数");
} else {
distributionAddvalueDetailEntity.setFee(distributionAppAddvalueDTO.getFee());
}
break;
// case "4":
// case "5":
// if (Func.isEmpty(distributionAppAddvalueDTO.getNum())) {
// return Resp.scanFail("添加失败", "请输入件数");
// } else {
// distributionAddvalueDetailEntity.setNum(packageEntityList.stream().mapToInt(DistributionAddvaluePackageEntity::getQuantity).sum());
// }
// break;
// case "6":
// if (Func.isEmpty(distributionAppAddvalueDTO.getFee())) {
// return Resp.scanFail("添加失败", "请输入件数");
// } else {
// distributionAddvalueDetailEntity.setFee(distributionAppAddvalueDTO.getFee());
// }
// break;
default:
return Resp.scanFail("添加失败", "服务器正忙");
}
List<DistributionAddvaluePackageDTO> packageEntityList = distributionAppAddvalueDTO.getPackageEntityList();
List<DistributionAddvaluePackageDTO> packageDTOList = packageEntityList.stream().filter(p -> Func.isNotEmpty(p.getQuantity()) && p.getQuantity() > 0).collect(Collectors.toList());
if (Func.isEmpty(packageDTOList)) {
return Resp.scanFail("操作失败", "无可用包件信息");
}
DistributionAddvalueEntity distributionAddvalueEntity = new DistributionAddvalueEntity();
distributionAddvalueEntity.setAddvalueId(distributionAppAddvalueDTO.getAddvalueType());
distributionAddvalueEntity.setCode(reservationEntity.getReservationCode());
@ -299,96 +236,29 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
distributionAddvalueDetailService.save(distributionAddvalueDetailEntity);
List<DistributionAddvaluePackageEntity> addvaluePackageEntities = new ArrayList<>();
BigDecimal totalFee = new BigDecimal(BigInteger.ZERO);
packageEntityList.stream().forEach(p -> {
AtomicReference<Integer> totalNum = new AtomicReference<>(new Integer(0));
packageEntityList.forEach(p -> {
if (Func.isEmpty(p.getUnitPrice())){
p.setUnitPrice(BigDecimal.ZERO);
}
p.setAddvalueDetailId(distributionAddvalueDetailEntity.getId());
p.setQuantity(p.getZeroQuantity());
p.setScanUserName(AuthUtil.getNickName());
DistributionAddvaluePackageEntity addvaluePackageEntity = Func.copy(p, DistributionAddvaluePackageEntity.class);
//构建增值服务包件的收入
BigDecimal unitPrice = new BigDecimal(BigInteger.ZERO);
//查询此包件匹配的计划模板
//获取结算单价
List<PriceDispatchAddClientVO> priceDispatchAddClientVOS = basicdataPriceClient.dispatchAddPrice(BasicdatPriceApiVO.builder().clientId(p.getClientId().toString()).brandId(p.getBrandId().toString()).build());
if (Func.isEmpty(priceDispatchAddClientVOS)) {
//此客户品牌下无单价信息
unitPrice = new BigDecimal(BigInteger.ZERO);
}
switch (p.getConditions()) {
case 1:
//查询订制品结算品类
BasicdataFactoryCategoryEntity entity1 = new BasicdataFactoryCategoryEntity();
entity1.setFirsts(p.getFirsts());
entity1.setSeconds(p.getSecond());
entity1.setThirds(p.getThirdProduct());
entity1.setMaterielName(p.getMaterialName());
entity1.setBrandId(p.getBrandId());
BasicdataFactoryCategoryEntity factoryCategoryEntity1 = basicdataFactoryCategoryClient.findEntityByThreeCategory(entity1);
if (Func.isEmpty(factoryCategoryEntity1)){
unitPrice = new BigDecimal(BigInteger.ZERO);
}
if (!Func.isEmpty(priceDispatchAddClientVOS)&&Func.isNotEmpty(factoryCategoryEntity1)){
//获取单价
unitPrice = getUnitPrice(priceDispatchAddClientVOS,factoryCategoryEntity1,distributionAppAddvalueDTO);
}
//判定该包件是否属于该客户
List<DistributionParcelListEntity> parcelListEntityList = distributionReservationMapper.selectPackageListByReservationId(distributionAppAddvalueDTO.getReservationId());
// boolean packageFlag = parcelListEntities.stream().allMatch(pack -> !Func.equals(pack.getId(), p.getPackageId()));
boolean packageFlag = parcelListEntityList.stream().map(DistributionParcelListEntity::getId).collect(Collectors.toList()).contains(p.getPackageId());
if (!packageFlag) {
throw new RuntimeException("不属于该客户包件");
}
break;
case 2:
BasicdataFactoryCategoryEntity entity2 = new BasicdataFactoryCategoryEntity();
entity2.setMaterielName(p.getMaterialName());
BasicdataFactoryCategoryEntity factoryCategoryEntity2 = basicdataFactoryCategoryClient.findEntityByMaterielName(entity2);
if (Func.isEmpty(factoryCategoryEntity2)){
unitPrice = new BigDecimal(BigInteger.ZERO);
}
if (!Func.isEmpty(priceDispatchAddClientVOS)&&Func.isNotEmpty(factoryCategoryEntity2)){
//获取单价
unitPrice = getUnitPrice(priceDispatchAddClientVOS,factoryCategoryEntity2,distributionAppAddvalueDTO);
}
List<DisStockListDetailEntity> detailEntities = distributionReservationMapper.selectInventoryListByReservation(distributionAppAddvalueDTO.getReservationId());
// boolean inventoryPackageFlag = detailEntities.stream().allMatch(pack -> !Func.equals(pack.getId(), p.getPackageId()));
boolean inventoryPackageFlag = detailEntities.stream().map(DisStockListDetailEntity::getId).collect(Collectors.toList()).contains(p.getPackageId());
if (!inventoryPackageFlag) {
throw new RuntimeException("不属于该客户包件");
}
break;
case 3:
BasicdataFactoryCategoryEntity entity3 = new BasicdataFactoryCategoryEntity();
entity3.setMaterielName(p.getMaterialName());
BasicdataFactoryCategoryEntity factoryCategoryEntity3 = basicdataFactoryCategoryClient.findEntityByCategoryName(entity3);
if (Func.isEmpty(factoryCategoryEntity3)){
unitPrice = new BigDecimal(BigInteger.ZERO);
}
if (!Func.isEmpty(priceDispatchAddClientVOS)&&Func.isNotEmpty(factoryCategoryEntity3)){
//获取单价
unitPrice = getUnitPrice(priceDispatchAddClientVOS,factoryCategoryEntity3,distributionAppAddvalueDTO);
}
List<DistributionParcelNumberDTO> distributionParcelNumberDTOS = distributionReservationMapper.selectZeroPackageListByReservationId(distributionAppAddvalueDTO.getReservationId());
// boolean zeroPackageFlag = distributionParcelNumberDTOS.stream().allMatch(pack -> !Func.equals(pack.getId(), p.getPackageId()));
boolean zeroPackageFlag = distributionParcelNumberDTOS.stream().map(DistributionParcelNumberDTO::getId).collect(Collectors.toList()).contains(p.getPackageId());
if (!zeroPackageFlag) {
throw new RuntimeException("不属于该客户包件");
}
break;
}
addvaluePackageEntity.setScanUserName(AuthUtil.getNickName());
addvaluePackageEntity.setUnitPrice(unitPrice);
addvaluePackageEntity.setUnitPrice(p.getUnitPrice());
addvaluePackageEntity.setRecordType("1");
//计算收入
addvaluePackageEntity.setFee(unitPrice.multiply(BigDecimal.valueOf(p.getQuantity())));
addvaluePackageEntity.setFee(p.getUnitPrice().multiply(BigDecimal.valueOf(p.getQuantity())));
addvaluePackageEntities.add(addvaluePackageEntity);
totalFee.add(addvaluePackageEntity.getFee());
totalNum.updateAndGet(v -> v + p.getQuantity());
});
distributionAddvaluePackageService.saveBatch(addvaluePackageEntities);
//最后进行该增值服务项的费用统计
distributionAddvalueDetailService.update(Wrappers.<DistributionAddvalueDetailEntity>update().lambda()
.eq(DistributionAddvalueDetailEntity::getId,distributionAddvalueDetailEntity.getId())
.set(DistributionAddvalueDetailEntity::getFee,totalFee)
.eq(DistributionAddvalueDetailEntity::getId, distributionAddvalueDetailEntity.getId())
.set(DistributionAddvalueDetailEntity::getFee, totalFee)
.set(DistributionAddvalueDetailEntity::getNum, totalNum.get())
);
return Resp.scanSuccess("添加成功", "添加成功");
}
@ -399,7 +269,7 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
public R savePCAddvalueInfo(DistributionAppAddvalueDTO distributionAppAddvalueDTO) {
List<DistributionAddvaluePackageDTO> packageEntityList = new ArrayList<>();
if (!Func.isEmpty(distributionAppAddvalueDTO.getPackageEntityList())){
if (!Func.isEmpty(distributionAppAddvalueDTO.getPackageEntityList())) {
packageEntityList = distributionAppAddvalueDTO.getPackageEntityList();
}
@ -435,24 +305,24 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
} else {
distributionAddvalueDetailEntity.setDistance(distributionAppAddvalueDTO.getDistance());
}
if (Func.isEmpty(distributionAppAddvalueDTO.getFee())){
if (Func.isEmpty(distributionAppAddvalueDTO.getFee())) {
return Resp.scanFail("添加失败", "请输入超区费用");
}else {
} else {
totalFee = totalFee.add(distributionAppAddvalueDTO.getFee());
}
Map<String, Object> addValueDTO = new HashMap<>();
addValueDTO.put("reservationId",distributionAppAddvalueDTO.getReservationId().toString());
addValueDTO.put("reservationId", distributionAppAddvalueDTO.getReservationId().toString());
//超区需要默认当前所有包件
List<DistributionAddvaluePackageDTO> superZoneList = distributionSignforService.checkAddValuePCPackageList(distributionAppAddvalueDTO.getReservationId());
if (!Func.isEmpty(superZoneList)){
if (!Func.isEmpty(superZoneList)) {
packageEntityList = superZoneList;
//进行费用均摊
BigDecimal fee = distributionAppAddvalueDTO.getFee();
if (fee.equals(BigDecimal.ZERO)){
currencyUnitPrice = BigDecimal.ZERO;
}else {
currencyUnitPrice = fee.divide(BigDecimal.valueOf(packageEntityList.size()));
}
//进行费用均摊
BigDecimal fee = distributionAppAddvalueDTO.getFee();
if (fee.equals(BigDecimal.ZERO)) {
currencyUnitPrice = BigDecimal.ZERO;
} else {
currencyUnitPrice = fee.divide(BigDecimal.valueOf(packageEntityList.size()));
}
}
break;
case "3":
@ -463,19 +333,19 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
}
break;
case "6":
if (Func.isEmpty(distributionAppAddvalueDTO.getFee())){
if (Func.isEmpty(distributionAppAddvalueDTO.getFee())) {
return Resp.scanFail("添加失败", "请输入专车费用");
}else {
} else {
totalFee = totalFee.add(distributionAppAddvalueDTO.getFee());
}
List<DistributionAddvaluePackageDTO> specialCarList = distributionSignforService.checkAddValuePCPackageList(distributionAppAddvalueDTO.getReservationId());
if (!Func.isEmpty(specialCarList)){
if (!Func.isEmpty(specialCarList)) {
packageEntityList = specialCarList;
//进行费用均摊
BigDecimal fee = distributionAppAddvalueDTO.getFee();
if (fee.equals(BigDecimal.ZERO)){
if (fee.equals(BigDecimal.ZERO)) {
currencyUnitPrice = BigDecimal.ZERO;
}else {
} else {
currencyUnitPrice = fee.divide(BigDecimal.valueOf(packageEntityList.size()));
}
@ -524,7 +394,7 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
packageDTOList.stream().forEach(p -> {
BigDecimal unitPrice = null;
if (Func.isEmpty(addvaluePackageEntityMap.get(p.getPackageId()))) {
if (Func.isEmpty(distributionAppAddvalueDTO.getFee())){
if (Func.isEmpty(distributionAppAddvalueDTO.getFee())) {
Integer conditions = p.getConditions();
//获取结算单价
List<PriceDispatchAddClientVO> priceDispatchAddClientVOS = basicdataPriceClient.dispatchAddPrice(BasicdatPriceApiVO.builder().clientId(p.getClientId().toString()).brandId(p.getBrandId().toString()).build());
@ -542,12 +412,12 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
entity1.setMaterielName(p.getMaterialName());
entity1.setBrandId(p.getBrandId());
BasicdataFactoryCategoryEntity factoryCategoryEntity1 = basicdataFactoryCategoryClient.findEntityByThreeCategory(entity1);
if (Func.isEmpty(factoryCategoryEntity1)){
if (Func.isEmpty(factoryCategoryEntity1)) {
unitPrice = new BigDecimal(BigInteger.ZERO);
}
if (!Func.isEmpty(priceDispatchAddClientVOS)&&Func.isNotEmpty(factoryCategoryEntity1)){
if (!Func.isEmpty(priceDispatchAddClientVOS) && Func.isNotEmpty(factoryCategoryEntity1)) {
//获取单价
unitPrice = getUnitPrice(priceDispatchAddClientVOS,factoryCategoryEntity1,distributionAppAddvalueDTO);
unitPrice = getUnitPrice(priceDispatchAddClientVOS, factoryCategoryEntity1, distributionAppAddvalueDTO);
}
//判定该包件是否属于该客户
List<DistributionParcelListEntity> parcelListEntities = distributionReservationMapper.selectPackageListByReservationId(distributionAppAddvalueDTO.getReservationId());
@ -561,12 +431,12 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
BasicdataFactoryCategoryEntity entity2 = new BasicdataFactoryCategoryEntity();
entity2.setMaterielName(p.getMaterialName());
BasicdataFactoryCategoryEntity factoryCategoryEntity2 = basicdataFactoryCategoryClient.findEntityByMaterielName(entity2);
if (Func.isEmpty(factoryCategoryEntity2)){
if (Func.isEmpty(factoryCategoryEntity2)) {
unitPrice = new BigDecimal(BigInteger.ZERO);
}
if (!Func.isEmpty(priceDispatchAddClientVOS)&&Func.isNotEmpty(factoryCategoryEntity2)){
if (!Func.isEmpty(priceDispatchAddClientVOS) && Func.isNotEmpty(factoryCategoryEntity2)) {
//获取单价
unitPrice = getUnitPrice(priceDispatchAddClientVOS,factoryCategoryEntity2,distributionAppAddvalueDTO);
unitPrice = getUnitPrice(priceDispatchAddClientVOS, factoryCategoryEntity2, distributionAppAddvalueDTO);
}
List<DisStockListDetailEntity> detailEntities = distributionReservationMapper.selectInventoryListByReservation(distributionAppAddvalueDTO.getReservationId());
// boolean inventoryPackageFlag = detailEntities.stream().allMatch(pack -> !Func.equals(pack.getId(), p.getPackageId()));
@ -579,12 +449,12 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
BasicdataFactoryCategoryEntity entity3 = new BasicdataFactoryCategoryEntity();
entity3.setMaterielName(p.getMaterialName());
BasicdataFactoryCategoryEntity factoryCategoryEntity3 = basicdataFactoryCategoryClient.findEntityByCategoryName(entity3);
if (Func.isEmpty(factoryCategoryEntity3)){
if (Func.isEmpty(factoryCategoryEntity3)) {
unitPrice = new BigDecimal(BigInteger.ZERO);
}
if (!Func.isEmpty(priceDispatchAddClientVOS)&&Func.isNotEmpty(factoryCategoryEntity3)){
if (!Func.isEmpty(priceDispatchAddClientVOS) && Func.isNotEmpty(factoryCategoryEntity3)) {
//获取单价
unitPrice = getUnitPrice(priceDispatchAddClientVOS,factoryCategoryEntity3,distributionAppAddvalueDTO);
unitPrice = getUnitPrice(priceDispatchAddClientVOS, factoryCategoryEntity3, distributionAppAddvalueDTO);
}
List<DistributionParcelNumberDTO> distributionParcelNumberDTOS = distributionReservationMapper.selectZeroPackageListByReservationId(distributionAppAddvalueDTO.getReservationId());
// boolean zeroPackageFlag = distributionParcelNumberDTOS.stream().allMatch(pack -> !Func.equals(pack.getId(), p.getPackageId()));
@ -594,7 +464,7 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
}
break;
}
}else {
} else {
unitPrice = finalCurrencyUnitPrice;
}
p.setAddvalueDetailId(distributionAddvalueDetailEntity.getId());
@ -612,22 +482,22 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
});
if (!addvaluePackageEntities.isEmpty()) {
BigDecimal finalTotalFee = totalFee;
addvaluePackageEntities.forEach(p ->{
addvaluePackageEntities.forEach(p -> {
finalTotalFee.add(p.getFee());
});
distributionAddvalueDetailEntity.setFee(totalFee);
distributionAddvalueDetailService.updateById(distributionAddvalueDetailEntity);
distributionAddvaluePackageService.saveBatch(addvaluePackageEntities);
return Resp.scanSuccess("添加成功", "添加成功");
}else {
} else {
return Resp.scanFail("添加失败", "添加失败");
}
}
private List<DistributionAddvaluePackageDTO> handleAddvaluePackageEntity(List<DistributionAddvaluePackageVO> records) {
List<DistributionAddvaluePackageDTO> packageDTOList= new ArrayList<>();
records.forEach(r->{
List<DistributionAddvaluePackageDTO> packageDTOList = new ArrayList<>();
records.forEach(r -> {
DistributionAddvaluePackageDTO dto = Func.copy(r, DistributionAddvaluePackageDTO.class);
packageDTOList.add(dto);
@ -639,19 +509,19 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
List<PriceDispatchAddClientVO> collect = priceDispatchAddClientVOS.stream().filter(f -> f.getCategoryId().equals(factoryCategoryEntity.getId())).collect(Collectors.toList());
BigDecimal unitPrice = null;
if (!collect.isEmpty()){
if (collect.size() > 1){
log.info("存在多个相同分类的单价CategoryId:{}",factoryCategoryEntity.getId());
if (!collect.isEmpty()) {
if (collect.size() > 1) {
log.info("存在多个相同分类的单价CategoryId:{}", factoryCategoryEntity.getId());
}
PriceDispatchAddClientVO priceDispatchAddClientVO = collect.get(0);
switch (distributionAppAddvalueDTO.getAddvalueType()){
switch (distributionAppAddvalueDTO.getAddvalueType()) {
case "1":
//获取上楼费用
//比对是否超过了楼层
if (priceDispatchAddClientVO.getDispatchStairsCarryingCharge() >= distributionAppAddvalueDTO.getFloolNum()) {
unitPrice = new BigDecimal(BigInteger.ZERO);
}else {
} else {
unitPrice = BigDecimal.valueOf(priceDispatchAddClientVO.getUpstairsDeliveryPrice());
}
break;
@ -672,56 +542,139 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
unitPrice = BigDecimal.valueOf(priceDispatchAddClientVO.getSortPrice());
break;
default:
log.info(">>>>>>>>>>>>>>对应客户未进行单价维护:{}",priceDispatchAddClientVO.getCategoryId());
log.info(">>>>>>>>>>>>>>对应客户未进行单价维护:{}", priceDispatchAddClientVO.getCategoryId());
unitPrice = new BigDecimal(BigInteger.ZERO);
break;
}
}else {
} else {
return BigDecimal.ZERO;
}
return unitPrice;
}
@Override
public List<DistributionAddvaluePackageVO> getAllPackageList(DistributionAppAddvalueDTO distributionAppAddvalueDTO) {
public List<DistributionAddvaluePackageDTO> getAllPackageList(DistributionAppAddvalueDTO distributionAppAddvalueDTO) {
// List<DistributionAddvaluePackageEntity> packageEntityList = distributionAppAddvalueDTO.getPackageEntityList();
List<Long> packageListIds = distributionAppAddvalueDTO.getPackageListIds();
// List<Long> packageListIds = distributionAppAddvalueDTO.getPackageListIds();
// Long reservationId = distributionAppAddvalueDTO.getReservationId();
//// List<DistributionAddvaluePackageVO> parcelListEntities = distributionReservationMapper.selectAppPackageListByReservationId(reservationId);
//// List<DistributionAddvaluePackageVO> zeroPackageList = distributionReservationMapper.selectAppZeroPackageListByReservationId(reservationId);
//// List<DistributionAddvaluePackageVO> detailEntities = distributionReservationMapper.selectAppInventoryListByReservation(reservationId);
// if (Func.isNotEmpty(zeroPackageList)) {
// zeroPackageList.forEach(zp -> {
// //查询最大输入数量
// DistributionLoadscanEntity loadscanEntities = distributionLoadscanService.getOne(Wrappers.<DistributionLoadscanEntity>query().lambda().eq(DistributionLoadscanEntity::getReservationId, distributionAppAddvalueDTO.getReservationId()).eq(DistributionLoadscanEntity::getPackageId, zp.getPackageId()).ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue()));
// zp.setMaxQuantity(0);
// if (Func.isNotEmpty(loadscanEntities)) {
// zp.setMaxQuantity(loadscanEntities.getReceivedQuantity());
// }
// });
// }
// parcelListEntities.addAll(detailEntities);
// parcelListEntities.addAll(zeroPackageList);
// if (Func.isEmpty(parcelListEntities)) {
// log.error("################该客户下包件信息:{}", parcelListEntities);
// log.error("################该客户下库存品包件信息:{}", detailEntities);
//// return R.fail("服务器正忙....");
// }
// if (Func.isNotEmpty(parcelListEntities)) {
// parcelListEntities.stream().forEach(p -> {
// p.setRecordType("1");
// //进行客户信息完善
//
//
//
// });
// }
// if (Func.isNotEmpty(zeroPackageList)) {
// zeroPackageList.stream().forEach(p -> {
// p.setRecordType("1");
// });
// }
String method = "#####################################DistributionAddvalueServiceImpl.getAllPackageList";
Long reservationId = distributionAppAddvalueDTO.getReservationId();
List<DistributionAddvaluePackageVO> parcelListEntities = distributionReservationMapper.selectAppPackageListByReservationId(reservationId);
List<DistributionAddvaluePackageVO> zeroPackageList = distributionReservationMapper.selectAppZeroPackageListByReservationId(reservationId);
List<DistributionAddvaluePackageVO> detailEntities = distributionReservationMapper.selectAppInventoryListByReservation(reservationId);
if (Func.isNotEmpty(zeroPackageList)) {
zeroPackageList.forEach(zp -> {
//查询最大输入数量
DistributionLoadscanEntity loadscanEntities = distributionLoadscanService.getOne(Wrappers.<DistributionLoadscanEntity>query().lambda().eq(DistributionLoadscanEntity::getReservationId, distributionAppAddvalueDTO.getReservationId()).eq(DistributionLoadscanEntity::getPackageId, zp.getPackageId()).ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue()));
zp.setMaxQuantity(0);
if (Func.isNotEmpty(loadscanEntities)) {
zp.setMaxQuantity(loadscanEntities.getReceivedQuantity());
}
});
}
parcelListEntities.addAll(detailEntities);
parcelListEntities.addAll(zeroPackageList);
if (Func.isEmpty(parcelListEntities)) {
log.error("################该客户下包件信息:{}", parcelListEntities);
log.error("################该客户下库存品包件信息:{}", detailEntities);
// return R.fail("服务器正忙....");
if (Objects.isNull(distributionAppAddvalueDTO.getReservationId())) {
log.error(method + "参数缺失ReservationId");
return null;
}
if (Func.isNotEmpty(parcelListEntities)) {
parcelListEntities.stream().forEach(p -> {
p.setRecordType("1");
//进行客户信息完善
});
}
if (Func.isNotEmpty(zeroPackageList)) {
zeroPackageList.stream().forEach(p -> {
p.setRecordType("1");
List<DistributionAddvaluePackageDTO> superZoneList = distributionSignforService.checkAddValuePCPackageList(reservationId);
if (!superZoneList.isEmpty()) {
//进行单价获取
AtomicReference<BigDecimal> unitPrice = new AtomicReference<>(BigDecimal.ZERO);
superZoneList.forEach(s -> {
Integer conditions = s.getConditions();
//获取结算单价
List<PriceDispatchAddClientVO> priceDispatchAddClientVOS = basicdataPriceClient.dispatchAddPrice(BasicdatPriceApiVO.builder().clientId(s.getClientId().toString()).brandId(s.getBrandId().toString()).build());
if (Func.isEmpty(priceDispatchAddClientVOS)) {
//此客户品牌下无单价信息
unitPrice.set(BigDecimal.ZERO);
}
switch (conditions) {
case 1:
//查询订制品结算品类
BasicdataFactoryCategoryEntity entity1 = new BasicdataFactoryCategoryEntity();
entity1.setFirsts(s.getFirsts());
entity1.setSeconds(s.getSecond());
entity1.setThirds(s.getThirdProduct());
entity1.setMaterielName(s.getMaterialName());
entity1.setBrandId(s.getBrandId());
BasicdataFactoryCategoryEntity factoryCategoryEntity1 = basicdataFactoryCategoryClient.findEntityByThreeCategory(entity1);
if (Func.isEmpty(factoryCategoryEntity1)) {
unitPrice.set(BigDecimal.ZERO);
}
if (!Func.isEmpty(priceDispatchAddClientVOS) && Func.isNotEmpty(factoryCategoryEntity1)) {
//获取单价
unitPrice.set(getUnitPrice(priceDispatchAddClientVOS, factoryCategoryEntity1, distributionAppAddvalueDTO));
}
//判定该包件是否属于该客户
List<DistributionParcelListEntity> parcelListEntities = distributionReservationMapper.selectPackageListByReservationId(distributionAppAddvalueDTO.getReservationId());
// boolean packageFlag = parcelListEntities.stream().allMatch(pack -> !Func.equals(pack.getId(), p.getPackageId()));
boolean packageFlag = parcelListEntities.stream().map(DistributionParcelListEntity::getId).collect(Collectors.toList()).contains(s.getPackageId());
if (!packageFlag) {
throw new RuntimeException("不属于该客户包件");
}
break;
case 2:
BasicdataFactoryCategoryEntity entity2 = new BasicdataFactoryCategoryEntity();
entity2.setMaterielName(s.getMaterialName());
BasicdataFactoryCategoryEntity factoryCategoryEntity2 = basicdataFactoryCategoryClient.findEntityByMaterielName(entity2);
if (Func.isEmpty(factoryCategoryEntity2)) {
unitPrice.set(BigDecimal.ZERO);
}
if (!Func.isEmpty(priceDispatchAddClientVOS) && Func.isNotEmpty(factoryCategoryEntity2)) {
//获取单价
unitPrice.set(getUnitPrice(priceDispatchAddClientVOS, factoryCategoryEntity2, distributionAppAddvalueDTO));
}
List<DisStockListDetailEntity> detailEntities = distributionReservationMapper.selectInventoryListByReservation(distributionAppAddvalueDTO.getReservationId());
// boolean inventoryPackageFlag = detailEntities.stream().allMatch(pack -> !Func.equals(pack.getId(), p.getPackageId()));
boolean inventoryPackageFlag = detailEntities.stream().map(DisStockListDetailEntity::getId).collect(Collectors.toList()).contains(s.getPackageId());
if (!inventoryPackageFlag) {
throw new RuntimeException("不属于该客户包件");
}
break;
case 3:
BasicdataFactoryCategoryEntity entity3 = new BasicdataFactoryCategoryEntity();
entity3.setMaterielName(s.getMaterialName());
BasicdataFactoryCategoryEntity factoryCategoryEntity3 = basicdataFactoryCategoryClient.findEntityByCategoryName(entity3);
if (Func.isEmpty(factoryCategoryEntity3)) {
unitPrice.set(BigDecimal.ZERO);
}
if (!Func.isEmpty(priceDispatchAddClientVOS) && Func.isNotEmpty(factoryCategoryEntity3)) {
//获取单价
unitPrice.set(getUnitPrice(priceDispatchAddClientVOS, factoryCategoryEntity3, distributionAppAddvalueDTO));
}
List<DistributionParcelNumberDTO> distributionParcelNumberDTOS = distributionReservationMapper.selectZeroPackageListByReservationId(distributionAppAddvalueDTO.getReservationId());
// boolean zeroPackageFlag = distributionParcelNumberDTOS.stream().allMatch(pack -> !Func.equals(pack.getId(), p.getPackageId()));
boolean zeroPackageFlag = distributionParcelNumberDTOS.stream().map(DistributionParcelNumberDTO::getId).collect(Collectors.toList()).contains(s.getPackageId());
if (!zeroPackageFlag) {
throw new RuntimeException("不属于该客户包件");
}
break;
}
s.setUnitPrice(unitPrice.get());
});
}
return parcelListEntities;
return superZoneList;
}
@Override
@ -908,16 +861,16 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
@Transactional
public R cancelSignAddValuePackage(DistributionAppAddvalueDTO distributionAppAddvalueDTO) {
List<DistributionAddvaluePackageDTO> packageEntityList = new ArrayList<>();
if (distributionAppAddvalueDTO.getAddvalueType().equals("2") || distributionAppAddvalueDTO.getAddvalueType().equals("6")){
if (distributionAppAddvalueDTO.getAddvalueType().equals("2") || distributionAppAddvalueDTO.getAddvalueType().equals("6")) {
//专车和超区进行全部包件查询
Map<String, Object> addValueDTO = new HashMap<>();
addValueDTO.put("reservationId",distributionAppAddvalueDTO.getReservationId().toString());
addValueDTO.put("reservationId", distributionAppAddvalueDTO.getReservationId().toString());
//超区需要默认当前所有包件
List<DistributionAddvaluePackageDTO> superZoneList = distributionSignforService.checkAddValuePCPackageList(distributionAppAddvalueDTO.getReservationId());
if (!superZoneList.isEmpty()) {
packageEntityList = superZoneList;
}
}else {
} else {
packageEntityList = distributionAppAddvalueDTO.getPackageEntityList();
}
if (Func.isEmpty(packageEntityList)) {
@ -925,12 +878,12 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
}
//查询增值服务详情
DistributionAddvalueDetailEntity distributionAddvalueDetailEntity = distributionAddvalueDetailMapper.selectById(distributionAppAddvalueDTO.getAddvalueDetailId());
if (Func.isEmpty(distributionAddvalueDetailEntity)){
log.error("################查询增值服务详情错误id:{}",distributionAppAddvalueDTO.getAddvalueDetailId());
if (Func.isEmpty(distributionAddvalueDetailEntity)) {
log.error("################查询增值服务详情错误id:{}", distributionAppAddvalueDTO.getAddvalueDetailId());
}
DistributionAddvalueEntity addvalueEntity = this.getById(distributionAddvalueDetailEntity.getAddvalueId());
if (Func.isEmpty(addvalueEntity)){
log.error("################查询增值服务错误id:{}",distributionAddvalueDetailEntity.getAddvalueId());
if (Func.isEmpty(addvalueEntity)) {
log.error("################查询增值服务错误id:{}", distributionAddvalueDetailEntity.getAddvalueId());
}
AtomicReference<BigDecimal> newFee = new AtomicReference<>(BigDecimal.ZERO);
List<Long> packageIds = packageEntityList.stream().map(DistributionAddvaluePackageDTO::getPackageId).collect(Collectors.toList());
@ -944,8 +897,8 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
);
if (!addvaluePackageEntities.isEmpty()) {
List<DistributionAddvaluePackageEntity> entityList = addvaluePackageEntities.stream().filter(f -> packageIds.contains(f.getPackageId())).collect(Collectors.toList());
entityList.forEach(l->{
newFee.set(distributionAddvalueDetailEntity.getFee().subtract(l.getUnitPrice()));
entityList.forEach(l -> {
newFee.set(distributionAddvalueDetailEntity.getFee().subtract(l.getUnitPrice()));
});
}
@ -956,22 +909,22 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
distributionAddvalueDetailEntity.setNum(distributionAddvalueDetailEntity.getNum() - sum);
distributionAddvalueDetailMapper.updateById(distributionAddvalueDetailEntity);
if (Objects.equals(packageIds.size(),addvaluePackageEntities.size())){
if (Objects.equals(packageIds.size(), addvaluePackageEntities.size())) {
//此增值服务项进行全部取消
//这里就需要对整个增值服务项进行删除
distributionAddvalueDetailMapper.deleteAddvalueDetailById(distributionAppAddvalueDTO.getAddvalueDetailId());
distributionAddvalueMapper.deleteAddvalue(distributionAppAddvalueDTO.getReservationId(), distributionAppAddvalueDTO.getAddvalueType());
}
//查看取消增值服务的保健是否存在该项增值服务中,存在才能继续执行
boolean isExistence = packageIds.stream().allMatch(id -> addvaluePackageEntities.stream().map(DistributionAddvaluePackageEntity::getPackageId).collect(Collectors.toList()).contains(id));
if (isExistence) {
packageIds.forEach(id -> {
distributionAddvaluePackageMapper.deleteAddvaluePackageByDetailId(distributionAppAddvalueDTO.getReservationId(), id, distributionAppAddvalueDTO.getAddvalueDetailId());
});
} else {
log.error("###########该包件不存在增值服务项包件列表中");
return R.fail("取消包件失败,该包件不存在增值服务项列表中");
}
//查看取消增值服务的保健是否存在该项增值服务中,存在才能继续执行
boolean isExistence = packageIds.stream().allMatch(id -> addvaluePackageEntities.stream().map(DistributionAddvaluePackageEntity::getPackageId).collect(Collectors.toList()).contains(id));
if (isExistence) {
packageIds.forEach(id -> {
distributionAddvaluePackageMapper.deleteAddvaluePackageByDetailId(distributionAppAddvalueDTO.getReservationId(), id, distributionAppAddvalueDTO.getAddvalueDetailId());
});
} else {
log.error("###########该包件不存在增值服务项包件列表中");
return R.fail("取消包件失败,该包件不存在增值服务项列表中");
}
return R.success("操作成功");
@ -1048,13 +1001,13 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
increasePackage.forEach(ip -> {
if (Func.isNotEmpty(packageDTOMap.get(ip))) {
//新增包件
BigDecimal unitPrice = null;
BigDecimal unitPrice = null;
//计算包件单价
DistributionAddvaluePackageDTO distributionAddvaluePackageDTO = packageDTOMap.get(ip);
List<PriceDispatchAddClientVO> priceDispatchAddClientVOS = basicdataPriceClient.dispatchAddPrice(BasicdatPriceApiVO.builder().clientId(distributionAddvaluePackageDTO.getClientId().toString()).brandId(distributionAddvaluePackageDTO.getClientId().toString()).build());
//查询价格模板
if (Func.isEmpty(priceDispatchAddClientVOS)){
if (Func.isEmpty(priceDispatchAddClientVOS)) {
unitPrice = BigDecimal.ZERO;
}
DistributionAddvaluePackageDTO dto = packageDTOMap.get(ip);
@ -1068,12 +1021,12 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
entity1.setMaterielName(dto.getMaterialName());
entity1.setBrandId(dto.getBrandId());
BasicdataFactoryCategoryEntity factoryCategoryEntity1 = basicdataFactoryCategoryClient.findEntityByThreeCategory(entity1);
if (Func.isEmpty(factoryCategoryEntity1)){
if (Func.isEmpty(factoryCategoryEntity1)) {
unitPrice = new BigDecimal(BigInteger.ZERO);
}
if (!Func.isEmpty(priceDispatchAddClientVOS)&&Func.isNotEmpty(factoryCategoryEntity1)){
if (!Func.isEmpty(priceDispatchAddClientVOS) && Func.isNotEmpty(factoryCategoryEntity1)) {
//获取单价
unitPrice = getUnitPrice(priceDispatchAddClientVOS,factoryCategoryEntity1,distributionAppAddvalueDTO);
unitPrice = getUnitPrice(priceDispatchAddClientVOS, factoryCategoryEntity1, distributionAppAddvalueDTO);
}
//判定该包件是否属于该客户
List<DistributionParcelListEntity> parcelListEntities = distributionReservationMapper.selectPackageListByReservationId(distributionAppAddvalueDTO.getReservationId());
@ -1087,12 +1040,12 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
BasicdataFactoryCategoryEntity entity2 = new BasicdataFactoryCategoryEntity();
entity2.setMaterielName(dto.getMaterialName());
BasicdataFactoryCategoryEntity factoryCategoryEntity2 = basicdataFactoryCategoryClient.findEntityByMaterielName(entity2);
if (Func.isEmpty(factoryCategoryEntity2)){
if (Func.isEmpty(factoryCategoryEntity2)) {
unitPrice = new BigDecimal(BigInteger.ZERO);
}
if (!Func.isEmpty(priceDispatchAddClientVOS)&&Func.isNotEmpty(factoryCategoryEntity2)){
if (!Func.isEmpty(priceDispatchAddClientVOS) && Func.isNotEmpty(factoryCategoryEntity2)) {
//获取单价
unitPrice = getUnitPrice(priceDispatchAddClientVOS,factoryCategoryEntity2,distributionAppAddvalueDTO);
unitPrice = getUnitPrice(priceDispatchAddClientVOS, factoryCategoryEntity2, distributionAppAddvalueDTO);
}
List<DisStockListDetailEntity> detailEntities = distributionReservationMapper.selectInventoryListByReservation(distributionAppAddvalueDTO.getReservationId());
boolean inventoryPackageFlag = detailEntities.stream().map(DisStockListDetailEntity::getId).collect(Collectors.toList()).contains(dto.getPackageId());
@ -1104,12 +1057,12 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
BasicdataFactoryCategoryEntity entity3 = new BasicdataFactoryCategoryEntity();
entity3.setMaterielName(dto.getMaterialName());
BasicdataFactoryCategoryEntity factoryCategoryEntity3 = basicdataFactoryCategoryClient.findEntityByCategoryName(entity3);
if (Func.isEmpty(factoryCategoryEntity3)){
if (Func.isEmpty(factoryCategoryEntity3)) {
unitPrice = new BigDecimal(BigInteger.ZERO);
}
if (!Func.isEmpty(priceDispatchAddClientVOS)&&Func.isNotEmpty(factoryCategoryEntity3)){
if (!Func.isEmpty(priceDispatchAddClientVOS) && Func.isNotEmpty(factoryCategoryEntity3)) {
//获取单价
unitPrice = getUnitPrice(priceDispatchAddClientVOS,factoryCategoryEntity3,distributionAppAddvalueDTO);
unitPrice = getUnitPrice(priceDispatchAddClientVOS, factoryCategoryEntity3, distributionAppAddvalueDTO);
}
List<DistributionParcelNumberDTO> distributionParcelNumberDTOS = distributionReservationMapper.selectZeroPackageListByReservationId(distributionAppAddvalueDTO.getReservationId());
// boolean zeroPackageFlag = distributionParcelNumberDTOS.stream().allMatch(pack -> !Func.equals(pack.getId(), p.getPackageId()));

17
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java

@ -674,16 +674,25 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
List<DistributionLoadscanAbnormalEntity> abnormalEntities = distributionLoadscanAbnormalService.list(Wrappers.<DistributionLoadscanAbnormalEntity>query().lambda()
.eq(DistributionLoadscanAbnormalEntity::getPackageCode, distrilbutionloadingscanDTO.getBarcode())
.eq(DistributionLoadscanAbnormalEntity::getPackageId, parcelList.getId())
.notIn(DistributionLoadscanAbnormalEntity::getAuditingStatus, LoadingAbnormalAuditingStatusConstant.daishenhe.getValue())
);
if (!abnormalEntities.isEmpty()) {
//判断异常是否属于自身
boolean flag = abnormalEntities.stream().allMatch(a -> !distributionDeliveryListEntity.getId().equals(a.getDeliveryListId()) || !distrilbutionloadingscanDTO.getReservationId().equals(a.getReservationId()));
if (flag) {
//该异常属于其他车次
String collect = abnormalEntities.stream().map(DistributionLoadscanAbnormalEntity::getTrainNumber).collect(Collectors.joining(","));
log.info("包件已在其他车次存在异常 >>>>当前车次:{},其他车次:{}", distributionDeliveryListEntity.getTrainNumber(), collect);
return Resp.scanFail("包件已在其他车次存在异常", "包件已在其他车次存在异常");
//校验是否还存在装车 如若存在则是无效装车,如若不存在则有效
List<DistributionLoadscanEntity> loadscanEntityList = distributionLoadscanService.list(Wrappers.<DistributionLoadscanEntity>query().lambda()
.eq(DistributionLoadscanEntity::getOrderPackageCode, distrilbutionloadingscanDTO.getBarcode())
.eq(DistributionLoadscanEntity::getWarehouseId, myCurrentWarehouse.getId())
.ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())
);
if (!Func.isEmpty(loadscanEntityList)) {
//该异常属于其他车次
String collect = abnormalEntities.stream().map(DistributionLoadscanAbnormalEntity::getTrainNumber).collect(Collectors.joining(","));
log.info("包件已在其他车次存在异常 >>>>当前车次:{},其他车次:{}", distributionDeliveryListEntity.getTrainNumber(), collect);
return Resp.scanFail("包件已在其他车次存在异常", "包件已在其他车次存在异常");
}
} else {
//这里需要判定文员是否对该异常进行驳回操作
List<DistributionLoadscanAbnormalEntity> collect = abnormalEntities.stream().filter(f -> distributionDeliveryListEntity.getId().equals(f.getDeliveryListId()) && distrilbutionloadingscanDTO.getReservationId().equals(f.getReservationId())).collect(Collectors.toList());

18
blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/controller/OrderController.java

@ -4,24 +4,24 @@ import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.logpm.factorydata.mengtian.entity.FactoryNodePushEntity;
import com.logpm.factorydata.mengtian.query.FactoryNodePushQuery;
import com.logpm.factorydata.mengtian.service.FactoryNodePushService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.factorydata.FactoryDataConstants;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PatchMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
/**
@ -54,24 +54,24 @@ public class OrderController {
@GetMapping
@ApiOperationSupport(order = 2)
@ApiOperation(value = "推送记录", notes = "推送记录")
public R<IPage<FactoryNodePushEntity>> pageNodePush(FactoryNodePushEntity vo, Query query) {
public R<IPage<FactoryNodePushEntity>> pageNodePush(FactoryNodePushEntity vo, FactoryNodePushQuery query) {
IPage<FactoryNodePushEntity> pages = nodePushService.pageNodePush(vo, query);
return R.data(pages);
}
@PostMapping("rePush/{id}")
@PostMapping("rePush")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "重新推送", notes = "重新推送")
public R<Boolean> rePush(@PathVariable("id") String id) {
Boolean flag = nodePushService.rePush(id);
public R<Boolean> rePush(@RequestBody List<String> ids) {
Boolean flag = nodePushService.rePush(ids);
return R.data(flag);
}
@PatchMapping("cancel/{id}")
@PatchMapping("cancel")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "取消", notes = "取消")
public R<Boolean> cancel(@PathVariable("id") String id) {
Boolean flag = nodePushService.cancel(id);
public R<Boolean> cancel(@RequestBody List<String> ids) {
Boolean flag = nodePushService.cancel(ids);
return R.data(flag);
}

35
blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/entity/FactoryNodePushEntity.java

@ -28,77 +28,82 @@ public class FactoryNodePushEntity extends BaseEntity {
/**
* 预留1
*/
@ApiModelProperty(name = "预留1", notes = "")
@ApiModelProperty(value = "预留1")
private String reserve1;
/**
* 预留2
*/
@ApiModelProperty(name = "预留2", notes = "")
@ApiModelProperty(value = "预留2")
private String reserve2;
/**
* 预留3
*/
@ApiModelProperty(name = "预留3", notes = "")
@ApiModelProperty(value = "预留3")
private String reserve3;
/**
* 预留4
*/
@ApiModelProperty(name = "预留4", notes = "")
@ApiModelProperty(value = "预留4")
private String reserve4;
/**
* 预留5
*/
@ApiModelProperty(name = "预留5", notes = "")
@ApiModelProperty(value = "预留5")
private String reserve5;
/**
* 发货单编号
*/
@ApiModelProperty(name = "发货单编号", notes = "")
@ApiModelProperty(value = "发货单编号")
private String senderCode;
/**
* 作业仓库
*/
@ApiModelProperty(value = "作业仓库")
private String warehouse;
/**
* 订单号
*/
@ApiModelProperty(name = "订单号", notes = "")
@ApiModelProperty(value = "订单号")
private String orderCode;
/**
* 包条码
*/
@ApiModelProperty(name = "包条码", notes = "")
@ApiModelProperty(value = "包条码")
private String packageCode;
/**
* 类型
*/
@ApiModelProperty(name = "类型(收货,确认收货,签收,确认签收)", notes = "")
@ApiModelProperty(value = "类型(收货,确认收货,签收,确认签收)")
private String type;
/**
* 送货任务ID
*/
@ApiModelProperty(name = "送货任务ID", notes = "")
@ApiModelProperty(value = "送货任务ID")
private String sendTaskId;
/**
* 发送状态
*/
@ApiModelProperty(name = "发送状态(0:成功,-1:失败,1:取消)", notes = "")
@ApiModelProperty(value = "发送状态(0:成功,-1:失败,1:取消)")
private String sendStatus;
/**
* 操作码
*/
@ApiModelProperty(name = "操作码", notes = "")
@ApiModelProperty(value = "操作码")
private String operationCode;
/**
* url
*/
@ApiModelProperty(name = "url", notes = "")
@ApiModelProperty(value = "url")
private String sendUrl;
/**
* 内容
*/
@ApiModelProperty(name = "内容", notes = "")
@ApiModelProperty(value = "内容")
private String content;
/**
* 返回值
*/
@ApiModelProperty(name = "返回值", notes = "")
@ApiModelProperty(value = "返回值")
private String resultContent;
}

2
blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/mapper/FactoryNodePushMapper.java

@ -20,5 +20,5 @@ public interface FactoryNodePushMapper extends BaseMapper<FactoryNodePushEntity>
List<FactoryNodePushEntity> pageNodePush(IPage<FactoryNodePushEntity> page, @Param("ew") Wrapper queryWrapper);
Boolean cancel(@Param("id") String id);
Boolean cancel(@Param("ids") List<String> ids);
}

13
blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/mapper/FactoryNodePushMapper.xml

@ -3,10 +3,19 @@
<mapper namespace="com.logpm.factorydata.mengtian.mapper.FactoryNodePushMapper">
<select id="pageNodePush" resultType="com.logpm.factorydata.mengtian.entity.FactoryNodePushEntity">
select * from mt_factory_node_push #{ew.customSqlSegment}
select * from mt_factory_node_push
<where>
<if test="ew.sqlSegment != null and ew.sqlSegment != ''">
${ew.sqlSegment}
</if>
</where>
order by create_time desc
</select>
<update id="cancel">
update mt_factory_node_push set send_status = 1 where id = #{id}
update mt_factory_node_push set send_status = 1 where id in
<foreach collection="ids" item="id" separator="," open="(" close=")">
#{id}
</foreach>
</update>
</mapper>

6
blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/mq/NodeDataPushListener.java

@ -132,6 +132,7 @@ public class NodeDataPushListener {
throw new RuntimeException(e);
}
FactoryNodePushEntity entity = FactoryNodePushEntity.builder()
.warehouse(warehouse)
.senderCode(centralStkInVO.getSenderCode())
.orderCode(centralStkInVO.getOrderCode())
.packageCode(centralStkInVO.getPackageCode())
@ -160,6 +161,7 @@ public class NodeDataPushListener {
mtPushDataDTOS1.stream().map(mtPushDataDTO -> {
return CentralStkInConfirmOrderVO.builder()
.orderCode(mtPushDataDTO.getOrderCode())
.outWarehouseType(mtPushDataDTO.getOutWarehouseType())
.packageVOS(
content.stream()
.filter(pushData -> StrUtil.equals(pushData.getOrderCode(), mtPushDataDTO.getOrderCode()))
@ -189,6 +191,7 @@ public class NodeDataPushListener {
return pushData.getPackageCode();
}).collect(Collectors.toSet()), ",");
FactoryNodePushEntity entity = FactoryNodePushEntity.builder()
.warehouse(warehouse)
.senderCode(senderCode)
.orderCode(orderCodes)
.packageCode(packageCodes)
@ -238,6 +241,7 @@ public class NodeDataPushListener {
return pushData.getSenderCode();
}).collect(Collectors.toSet()), ",");
FactoryNodePushEntity entity = FactoryNodePushEntity.builder()
.warehouse(warehouse)
.senderCode(signForVO.getSenderCode())
.orderCode(signForVO.getOrderCode())
.packageCode(signForVO.getPackageCode())
@ -268,6 +272,7 @@ public class NodeDataPushListener {
pushData -> {
return SignForConfirmPackageVO.builder()
.orderCode(pushData.getOrderCode())
.outWarehouseType(mtPushDataDTOMap.get(pushData.getOrderCode()).getOutWarehouseType())
.packageCode(pushData.getPackageCode())
.operatingTime(operatorTime)
.warehouseCode(mtPushDataDTOMap.get(pushData.getOrderCode()).getWarehouseCode())
@ -295,6 +300,7 @@ public class NodeDataPushListener {
return pushData.getSenderCode();
}).collect(Collectors.toSet()), ",");
FactoryNodePushEntity entity = FactoryNodePushEntity.builder()
.warehouse(warehouse)
.senderCode(senderCodes)
.orderCode(orderCodes)
.packageCode(packageCodes)

32
blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/query/FactoryNodePushQuery.java

@ -0,0 +1,32 @@
package com.logpm.factorydata.mengtian.query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springblade.core.mp.support.Query;
import java.util.Date;
/**
* 节点数据推送成功数据查询对象 query
*
* @author zhaoqiaobo
* @create 2024-03-13 14:21
*/
@ApiModel(value = "节点数据推送成功数据查询对象", description = "节点数据推送成功数据查询对象")
@Data
public class FactoryNodePushQuery extends Query {
@ApiModelProperty(value = "创建时间开始(范围)", position = 1)
private Date startCreateTime;
@ApiModelProperty(value = "创建时间结束(范围)", position = 2)
private Date endCreateTime;
@ApiModelProperty(value = "修改时间开始(范围)", position = 3)
private Date startUpdateTime;
@ApiModelProperty(value = "修改时间结束(范围)", position = 4)
private Date endUpdateTime;
}

10
blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/service/FactoryNodePushService.java

@ -2,8 +2,10 @@ package com.logpm.factorydata.mengtian.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.factorydata.mengtian.entity.FactoryNodePushEntity;
import com.logpm.factorydata.mengtian.query.FactoryNodePushQuery;
import org.springblade.core.mp.base.BaseService;
import org.springblade.core.mp.support.Query;
import java.util.List;
/**
* 推送工厂节点数据 服务类
@ -13,9 +15,9 @@ import org.springblade.core.mp.support.Query;
**/
public interface FactoryNodePushService extends BaseService<FactoryNodePushEntity> {
IPage<FactoryNodePushEntity> pageNodePush(FactoryNodePushEntity vo, Query query);
IPage<FactoryNodePushEntity> pageNodePush(FactoryNodePushEntity vo, FactoryNodePushQuery query);
Boolean cancel(String id);
Boolean cancel(List<String> id);
Boolean rePush(String id);
Boolean rePush(List<String> id);
}

76
blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/service/impl/FactoryNodePushServiceImpl.java

@ -1,7 +1,9 @@
package com.logpm.factorydata.mengtian.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
@ -11,13 +13,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.factorydata.mengtian.entity.FactoryNodePushEntity;
import com.logpm.factorydata.mengtian.mapper.FactoryNodePushMapper;
import com.logpm.factorydata.mengtian.query.FactoryNodePushQuery;
import com.logpm.factorydata.mengtian.service.FactoryNodePushService;
import com.logpm.factorydata.mengtian.util.QueryUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springframework.stereotype.Service;
import java.util.List;
@ -34,37 +37,66 @@ import java.util.List;
public class FactoryNodePushServiceImpl extends BaseServiceImpl<FactoryNodePushMapper, FactoryNodePushEntity> implements FactoryNodePushService {
@Override
public IPage<FactoryNodePushEntity> pageNodePush(FactoryNodePushEntity vo, Query query) {
public IPage<FactoryNodePushEntity> pageNodePush(FactoryNodePushEntity vo, FactoryNodePushQuery query) {
IPage<FactoryNodePushEntity> page = Condition.getPage(query);
QueryWrapper<FactoryNodePushEntity> queryWrapper = QueryUtil.buildQueryWrapper(vo, FactoryNodePushEntity.class);
if(StrUtil.isNotEmpty(vo.getType())){
queryWrapper.eq("type", vo.getType());
}
if(StrUtil.isNotEmpty(vo.getSendStatus())){
queryWrapper.eq("send_status", vo.getSendStatus());
}
customQuery(query, queryWrapper);
List<FactoryNodePushEntity> deliveryTrainPage = baseMapper.pageNodePush(page, queryWrapper);
return null;
return page.setRecords(deliveryTrainPage);
}
private void customQuery(FactoryNodePushQuery query, QueryWrapper<FactoryNodePushEntity> queryWrapper) {
// 配送时间开始
QueryUtil.timeGe("create_time", query.getStartCreateTime(), queryWrapper);
// 配送时间结束
QueryUtil.timeLe("create_time", query.getEndCreateTime(), queryWrapper);
// 配送时间开始
QueryUtil.timeGe("update_time", query.getStartUpdateTime(), queryWrapper);
// 配送时间结束
QueryUtil.timeLe("update_time", query.getEndUpdateTime(), queryWrapper);
}
@Override
public Boolean cancel(String id) {
return baseMapper.cancel(id);
public Boolean cancel(List<String> ids) {
if(CollUtil.isEmpty(ids)){
throw new ServiceException("参数为空");
}
return baseMapper.cancel(ids);
}
@Override
public Boolean rePush(String id) {
FactoryNodePushEntity factoryNodePushEntity = baseMapper.selectById(id);
if(ObjectUtil.isNotEmpty(factoryNodePushEntity)){
log.info("重新推送工厂:{}", JSONUtil.toJsonStr(factoryNodePushEntity));
HttpRequest post = HttpUtil.createPost(factoryNodePushEntity.getSendUrl());
post.header("ClientId", "mt.ht");
post.header("OperationCode", factoryNodePushEntity.getOperationCode());
post.body(factoryNodePushEntity.getContent());
HttpResponse execute = post.execute();
String resBody = execute.body();
log.info("重新推送工厂结果:{}", resBody);
JSONObject entries = JSONUtil.parseObj(resBody);
int resultCode = entries.getInt("Result");
// 存入日志表
factoryNodePushEntity.setSendStatus(Convert.toStr(resultCode));
baseMapper.updateById(factoryNodePushEntity);
return Boolean.TRUE;
public Boolean rePush(List<String> ids) {
if(CollUtil.isEmpty(ids)){
throw new ServiceException("参数为空");
}
List<FactoryNodePushEntity> factoryNodePushEntities = baseMapper.selectBatchIds(ids);
if(CollUtil.isNotEmpty(factoryNodePushEntities)){
for (FactoryNodePushEntity factoryNodePushEntity : factoryNodePushEntities) {
if(ObjectUtil.isNotEmpty(factoryNodePushEntity)){
log.info("重新推送工厂:{}", JSONUtil.toJsonStr(factoryNodePushEntity));
HttpRequest post = HttpUtil.createPost(factoryNodePushEntity.getSendUrl());
post.header("ClientId", "mt.ht");
post.header("OperationCode", factoryNodePushEntity.getOperationCode());
post.body(factoryNodePushEntity.getContent());
HttpResponse execute = post.execute();
String resBody = execute.body();
log.info("重新推送工厂结果:{}", resBody);
JSONObject entries = JSONUtil.parseObj(resBody);
int resultCode = entries.getInt("Result");
// 存入日志表
factoryNodePushEntity.setSendStatus(Convert.toStr(resultCode));
baseMapper.updateById(factoryNodePushEntity);
return Boolean.TRUE;
}
}
}
return Boolean.FALSE;
}
}

28
blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/util/QueryUtil.java

@ -1,9 +1,11 @@
package com.logpm.factorydata.mengtian.util;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springblade.core.mp.support.Condition;
import java.util.Date;
import java.util.Map;
/**
@ -26,4 +28,30 @@ public class QueryUtil {
return Condition.getQueryWrapper(stringObjectMap, classz);
}
/**
* QueryWrapper 查询大于指定时间范围
*
* @param field 字段名
* @param value 时间值
* @param wrapper mybatisplus查询对象
*/
public static void timeGe(String field, Date value, QueryWrapper wrapper) {
if (ObjectUtil.isNotEmpty(value)) {
wrapper.ge(field, value);
}
}
/**
* QueryWrapper 查询小于指定时间范围
*
* @param field 字段名
* @param value 时间值
* @param wrapper mybatisplus查询对象
*/
public static void timeLe(String field, Date value, QueryWrapper wrapper) {
if (ObjectUtil.isNotEmpty(value)) {
wrapper.le(field, value);
}
}
}

4
blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/vo/CentralStkInConfirmOrderVO.java

@ -24,6 +24,10 @@ public class CentralStkInConfirmOrderVO implements Serializable {
@JsonProperty("订单号")
private String orderCode;
@ApiModelProperty("工厂出库方式")
@JsonProperty("工厂出库方式")
private String outWarehouseType;
@ApiModelProperty("包件列表")
@JsonProperty("包件列表")
private List<CentralStkInConfirmPackageVO> packageVOS;

4
blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/vo/SignForConfirmPackageVO.java

@ -27,6 +27,10 @@ public class SignForConfirmPackageVO implements Serializable {
@JsonProperty("订单编号")
private String orderCode;
@ApiModelProperty("工厂出库方式")
@JsonProperty("工厂出库方式")
private String outWarehouseType;
@ApiModelProperty("包条码")
@JsonProperty("包条码")
private String packageCode;

2
blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/service/impl/MtFactoryDataServiceImpl.java

@ -715,7 +715,7 @@ public class MtFactoryDataServiceImpl implements IMtFactoryDataService {
Integer PUSH_STATUS_FAIL = 2;
JSONObject jsonObject = JSONObject.parseObject(result);
if (jsonObject == null || jsonObject.isEmpty() || 0 != jsonObject.getInteger("code")) {
if (jsonObject == null || jsonObject.isEmpty() || 0 != jsonObject.getInteger("Result")) {
mtOrderLogEntity.setPushStatus(PUSH_STATUS_FAIL);
} else {
mtOrderLogEntity.setPushStatus(PUSH_STATUS_SUCCESS);

55
blade-service/logpm-factory/src/test/java/com/logpm/factory/TestService.java

@ -62,6 +62,7 @@ import org.springblade.core.redis.cache.BladeRedis;
import org.springblade.core.test.BladeBootTest;
import org.springblade.core.test.BladeSpringExtension;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.SpringUtil;
import org.springblade.core.tool.utils.StringUtil;
import org.springblade.resource.feign.IOssClient;
@ -76,6 +77,7 @@ import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import javax.crypto.spec.PSource;
import javax.xml.crypto.Data;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.security.NoSuchAlgorithmException;
@ -1100,34 +1102,43 @@ public class TestService {
public static void main(String[] args) throws IOException, InterruptedException {
Date data1 = DateUtil.parse("2024-07-23 17:07:23.123","yyyy-MM-dd hh:mm:ss.SSS");
Date data2 = DateUtil.parse("2024-07-24 17:07:23.123","yyyy-MM-dd hh:mm:ss.SSS");
File file = new File("D:\\新建文件夹\\444.txt");
System.out.println(data1.getTime());
System.out.println(data2.getTime());
BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
List<String> list = new ArrayList<>();
while (bufferedReader.ready()) {
String line = bufferedReader.readLine();
if(!list.contains(line)){
list.add(line);
System.out.println(line);
}
}
// 获取token
String s = buildToken();
for (String string : list) {
Thread.sleep(500);
System.out.println(string);
String url = "https://timsapi.oppein.com/tims_odata_api/api/odata/PackageFeedbackRecord";
HttpResponse httpResponse = HttpRequest.post(url).header("Authorization", s).body(string).execute();
String result = httpResponse.body();
System.out.println(result);
}
// File file = new File("D:\\新建文件夹\\444.txt");
//
// BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
//
// List<String> list = new ArrayList<>();
//
// while (bufferedReader.ready()) {
// String line = bufferedReader.readLine();
// if(!list.contains(line)){
// list.add(line);
// System.out.println(line);
// }
// }
//
// // 获取token
// String s = buildToken();
//
//
//
// for (String string : list) {
// Thread.sleep(500);
// System.out.println(string);
// String url = "https://timsapi.oppein.com/tims_odata_api/api/odata/PackageFeedbackRecord";
// HttpResponse httpResponse = HttpRequest.post(url).header("Authorization", s).body(string).execute();
// String result = httpResponse.body();
// System.out.println(result);
// }
}

20
blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/DistributionDatarepair.java

@ -205,6 +205,26 @@ public class DistributionDatarepair {
return ReturnT.SUCCESS;
}
/**
* 推送单个 老系统系统
* @return
*/
@XxlJob("pushNotification")
public ReturnT<String> pushSingleNotification(String params) {
Boolean b = distributionSignforClient.clerkCheckPushData(Long.parseLong(params));
if(b!=null&&b){
warehouseMappingDataMapper.updateClearSignforStatusBysignforId(Long.parseLong(params), 1);
log.info(">>> 推送成功 {}",Long.parseLong(params));
}else{
log.error(">>> 推送失败 id="+Long.parseLong(params));
}
return ReturnT.SUCCESS;
}
/**
* 推送自提签收老系统系统
* @return

1
blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.java

@ -122,5 +122,6 @@ public interface WarehouseMappingDataMapper {
List<StockAllocationInfoVO> findStockAllocationInfo();
void updateClearSignforStatusBysignforId(@Param("singnforId")Long singnforId, @Param("dealStatus") Integer dealStatus);
}

5
blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.xml

@ -348,6 +348,11 @@
set total_num = #{num}
where id = #{aLong}
</update>
<update id="updateClearSignforStatusBysignforId">
update clear_singnfor_status_record
set deal_status = #{dealStatus}
where singnfor_id = #{singnforId}
</update>
<select id="findPackageTraysInfo" resultType="com.logpm.patch.vo.PackageTrayInfoVO">
select lwtg.association_value orderPackageCode,

102
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceDetailServiceImpl.java

@ -53,16 +53,16 @@ public class TrunklineAdvanceDetailServiceImpl extends BaseServiceImpl<Trunkline
private final IWarehouseWaybillClient warehouseWaybillClient;
@Override
public void updatePackageStatusById(String packageStatus, Long advanceDetailId,Long warehouseId,String warehouseName,Date incomingTime) {
baseMapper.updatePackageStatusById(packageStatus,advanceDetailId,warehouseId,warehouseName,incomingTime);
public void updatePackageStatusById(String packageStatus, Long advanceDetailId, Long warehouseId, String warehouseName, Date incomingTime) {
baseMapper.updatePackageStatusById(packageStatus, advanceDetailId, warehouseId, warehouseName, incomingTime);
}
@Override
public TrunklineAdvanceDetailEntity findEntityByOrderPackageCodeAndWarehouseId(String orderPackageCode, Long warehouseId) {
QueryWrapper<TrunklineAdvanceDetailEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("order_package_code",orderPackageCode)
.eq("warehouse_id",warehouseId)
.eq("is_deleted",0);
queryWrapper.eq("order_package_code", orderPackageCode)
.eq("warehouse_id", warehouseId)
.eq("is_deleted", 0);
return baseMapper.selectOne(queryWrapper);
}
@ -93,7 +93,7 @@ public class TrunklineAdvanceDetailServiceImpl extends BaseServiceImpl<Trunkline
page.setCurrent(advanceDetailDTO.getPageNum());
page.setSize(advanceDetailDTO.getPageSize());
IPage<TrunklineAdvanceDetailVO> pageList = baseMapper.advanceDetailPageList(page,advanceDetailDTO);
IPage<TrunklineAdvanceDetailVO> pageList = baseMapper.advanceDetailPageList(page, advanceDetailDTO);
return pageList;
}
@ -101,7 +101,7 @@ public class TrunklineAdvanceDetailServiceImpl extends BaseServiceImpl<Trunkline
@Override
public TrunklineAdvanceDetailEntity findEntityByOrderPackageCode(String orderPackageCode) {
QueryWrapper<TrunklineAdvanceDetailEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("order_package_code",orderPackageCode);
queryWrapper.eq("order_package_code", orderPackageCode);
return baseMapper.selectOne(queryWrapper);
}
@ -113,10 +113,10 @@ public class TrunklineAdvanceDetailServiceImpl extends BaseServiceImpl<Trunkline
@Override
public TrunklineAdvanceDetailEntity findEntityByOrderPackageCodeAndTrainNumberAndServiceNumAndOrderCode(String orderPackageCode, String trainNumber, String serviceNum, String orderCode) {
QueryWrapper<TrunklineAdvanceDetailEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("order_package_code",orderPackageCode)
.eq("order_code",orderCode)
.eq("train_number",trainNumber)
.eq("service_num",serviceNum);
queryWrapper.eq("order_package_code", orderPackageCode)
.eq("order_code", orderCode)
.eq("train_number", trainNumber)
.eq("service_num", serviceNum);
return baseMapper.selectOne(queryWrapper);
}
@ -129,6 +129,7 @@ public class TrunklineAdvanceDetailServiceImpl extends BaseServiceImpl<Trunkline
public OrderPackgeCodeDataVO showAdvancePackgeCode(Map<String, Object> params) throws Exception {
OrderPackgeCodeDataVO orderPackgeCodeDataVO = new OrderPackgeCodeDataVO();
List<Map> data = new ArrayList<>();
List<String> values = new ArrayList<>();
BasicPrintTemplateEntity template = basicPrintTemplateClient.getPrintTemplate(PrintTemplateStatusConstant.daiqueren_10.getValue());
if (ObjectUtil.isEmpty(template)) {
throw new ServiceException("模板内容未找到");
@ -140,14 +141,14 @@ public class TrunklineAdvanceDetailServiceImpl extends BaseServiceImpl<Trunkline
String orderPackageCodes = (String) params.get("orderPackageCodes");
String[] idArray = orderPackageCodes.split(",");
if(ObjectUtils.isNull(idArray)){
if (ObjectUtils.isNull(idArray)) {
throw new ServiceException("参数错误");
}
for (String orderPackageCode : idArray) {
DistributionStockArticleQRCodeVO vo = new DistributionStockArticleQRCodeVO();
DistributionStockArticleQRCodeVO vo = new DistributionStockArticleQRCodeVO();
TrunklineAdvanceDetailEntity advanceDetailEntity = baseMapper.findEntityByOrderPackageCodelimit1(orderPackageCode);
if(!Objects.isNull(advanceDetailEntity)){
if (!Objects.isNull(advanceDetailEntity)) {
Long advanceId = advanceDetailEntity.getAdvanceId();
TrunklineAdvanceEntity advanceEntity = advanceMapper.selectById(advanceId);
@ -158,18 +159,18 @@ public class TrunklineAdvanceDetailServiceImpl extends BaseServiceImpl<Trunkline
String thirdPackName = advanceDetailEntity.getThirdPackName();
if(!Objects.isNull(waybillId)){
if (!Objects.isNull(waybillId)) {
WarehouseWaybillEntity waybillEntity = warehouseWaybillClient.findByWaybillId(waybillId);
if(!Objects.isNull(waybillEntity)){
vo.setShipperName(StringUtil.isBlank(waybillEntity.getShipper())?"":waybillEntity.getShipper());
vo.setShipperAddress(StringUtil.isBlank(waybillEntity.getShipperAddress())?"":waybillEntity.getShipperAddress());
vo.setMallName(StringUtil.isBlank(waybillEntity.getConsignee())?"":waybillEntity.getConsignee());
vo.setWaybillsNum(waybillEntity.getTotalCount()+"");
vo.setObjective(StringUtil.isBlank(waybillEntity.getDestinationWarehouseName())?"":waybillEntity.getDestinationWarehouseName());
vo.setDepartureStation(StringUtil.isBlank(waybillEntity.getDepartureWarehouseName())?"":waybillEntity.getDepartureWarehouseName());
vo.setWaybillNumber(StringUtil.isBlank(waybillEntity.getWaybillNo())?"":waybillEntity.getWaybillNo());
if (!Objects.isNull(waybillEntity)) {
vo.setShipperName(StringUtil.isBlank(waybillEntity.getShipper()) ? "" : waybillEntity.getShipper());
vo.setShipperAddress(StringUtil.isBlank(waybillEntity.getShipperAddress()) ? "" : waybillEntity.getShipperAddress());
vo.setMallName(StringUtil.isBlank(waybillEntity.getConsignee()) ? "" : waybillEntity.getConsignee());
vo.setWaybillsNum(waybillEntity.getTotalCount() + "");
vo.setObjective(StringUtil.isBlank(waybillEntity.getDestinationWarehouseName()) ? "" : waybillEntity.getDestinationWarehouseName());
vo.setDepartureStation(StringUtil.isBlank(waybillEntity.getDepartureWarehouseName()) ? "" : waybillEntity.getDepartureWarehouseName());
vo.setWaybillNumber(StringUtil.isBlank(waybillEntity.getWaybillNo()) ? "" : waybillEntity.getWaybillNo());
}
}else{
} else {
vo.setShipperName("");
vo.setShipperAddress("");
vo.setMallName("");
@ -180,22 +181,22 @@ public class TrunklineAdvanceDetailServiceImpl extends BaseServiceImpl<Trunkline
}
vo.setOrderCode(orderCode);
vo.setCustomerName(StringUtil.isBlank(advanceEntity.getCustomerName())?"":advanceEntity.getCustomerName());
vo.setCustomerTelephone(StringUtil.isBlank(advanceEntity.getCustomerPhone())?"":advanceEntity.getCustomerPhone());
vo.setCustomerAddress(StringUtil.isBlank(advanceEntity.getCustomerAddress())?"":advanceEntity.getCustomerAddress());
vo.setMaterialName(StringUtil.isBlank(advanceDetailEntity.getMaterialName())?"":advanceDetailEntity.getMaterialName());
vo.setCategory(firstPackName+"/"+secondPackName+"/"+thirdPackName);
vo.setDealerCode(StringUtil.isBlank(advanceEntity.getDealerCode())?"":advanceEntity.getDealerCode());
vo.setDealerName(StringUtil.isBlank(advanceEntity.getDealerName())?"":advanceEntity.getDealerName());
vo.setCustomerName(StringUtil.isBlank(advanceEntity.getCustomerName()) ? "" : advanceEntity.getCustomerName());
vo.setCustomerTelephone(StringUtil.isBlank(advanceEntity.getCustomerPhone()) ? "" : advanceEntity.getCustomerPhone());
vo.setCustomerAddress(StringUtil.isBlank(advanceEntity.getCustomerAddress()) ? "" : advanceEntity.getCustomerAddress());
vo.setMaterialName(StringUtil.isBlank(advanceDetailEntity.getMaterialName()) ? "" : advanceDetailEntity.getMaterialName());
vo.setCategory(firstPackName + "/" + secondPackName + "/" + thirdPackName);
vo.setDealerCode(StringUtil.isBlank(advanceEntity.getDealerCode()) ? "" : advanceEntity.getDealerCode());
vo.setDealerName(StringUtil.isBlank(advanceEntity.getDealerName()) ? "" : advanceEntity.getDealerName());
vo.setQrCode(orderPackageCode);
vo.setTotalNumber(advanceEntity.getTotalNum()+"");
vo.setTotalNumber(advanceEntity.getTotalNum() + "");
}
//把vo转成Map<String, Object>
Map<String, Object> map = BeanUtil.beanToMap(vo);
if(!Objects.isNull(advanceDetailEntity)){
map.put("id",advanceDetailEntity.getId());
if (!Objects.isNull(advanceDetailEntity)) {
map.put("id", advanceDetailEntity.getId());
}
String filename = QRCodeUtil.createCodeToFile(vo.getQrCode());
map.put("img", QRCodeUtil.getEmpAutograph(filename));
@ -203,9 +204,14 @@ public class TrunklineAdvanceDetailServiceImpl extends BaseServiceImpl<Trunkline
String fileTypeName = QRCodeUtil.createCodeToFile(vo.getQrCode());
map.put("imgType", QRCodeUtil.getEmpAutograph(fileTypeName));
data.add(map);
String tempData = TemplateUtil.popTemplate(template.getTemplateName(), map, orderPackgeCodeDataVO.getTemplateHtml());
values.add(tempData);
}
orderPackgeCodeDataVO.setDataList(data);
orderPackgeCodeDataVO.setMoldList(values);
// TemplateUtil.popTemplate(template.getTemplateName(),data,orderPackgeCodeDataVO.getTemplateHtml())
return orderPackgeCodeDataVO;
}
@ -213,7 +219,7 @@ public class TrunklineAdvanceDetailServiceImpl extends BaseServiceImpl<Trunkline
@Override
public List<TrunklineAdvanceDetailEntity> findListByAdvanceId(Long advanceId) {
QueryWrapper<TrunklineAdvanceDetailEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("advance_id",advanceId);
queryWrapper.eq("advance_id", advanceId);
return baseMapper.selectList(queryWrapper);
}
@ -225,8 +231,8 @@ public class TrunklineAdvanceDetailServiceImpl extends BaseServiceImpl<Trunkline
@Override
public void deleteByAdvanceId(Long advanceId) {
QueryWrapper<TrunklineAdvanceDetailEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("advance_id",advanceId)
.eq("is_deleted",0);
queryWrapper.eq("advance_id", advanceId)
.eq("is_deleted", 0);
baseMapper.delete(queryWrapper);
}
@ -241,12 +247,12 @@ public class TrunklineAdvanceDetailServiceImpl extends BaseServiceImpl<Trunkline
//判断暂存单下还有没有包件
List<String> strings = baseMapper.findOrderPackageCodesByAdvanceId(advanceId);
if(0 == strings.size()){
if (0 == strings.size()) {
//删除暂存单
List<Long> advanceIds = new ArrayList<>();
advanceIds.add(advanceId);
advanceMapper.deletedAdvance(advanceIds);
}else{
} else {
//数量减一
advanceMapper.subTotalNumByAdvanceId(advanceId);
}
@ -263,7 +269,7 @@ public class TrunklineAdvanceDetailServiceImpl extends BaseServiceImpl<Trunkline
@Override
public void updateWaybillNoByAdvanceId(Long advanceId, String waybillNo, Long waybillId) {
baseMapper.updateWaybillNoByAdvanceId(advanceId,waybillNo,waybillId);
baseMapper.updateWaybillNoByAdvanceId(advanceId, waybillNo, waybillId);
}
@Override
@ -278,23 +284,23 @@ public class TrunklineAdvanceDetailServiceImpl extends BaseServiceImpl<Trunkline
@Override
public Integer findListByAdvanceIdAndPackageStatus(Long advanceId, String packageStatus) {
return baseMapper.findListByAdvanceIdAndPackageStatus(advanceId,packageStatus);
return baseMapper.findListByAdvanceIdAndPackageStatus(advanceId, packageStatus);
}
@Override
public Map<String, String> findPackageCodeByCodes(Set<String> orderPackageCodes) {
@Override
public Map<String, String> findPackageCodeByCodes(Set<String> orderPackageCodes) {
List<Map<String, String>> packageCodeByCodes = baseMapper.findPackageCodeByCodes(orderPackageCodes);
if(CollUtil.isNotEmpty(packageCodeByCodes)){
if (CollUtil.isNotEmpty(packageCodeByCodes)) {
return packageCodeByCodes.stream().collect(Collectors.toMap(map -> map.get("code"), map -> String.valueOf(map.get("id"))));
}
return null;
}
}
@Override
public R findOrderDetails(OrderDetailsDTO orderDetailsDTO) {
//判断orderDetailsDTO中的订单号 运单号 包件码 服务号 客户车次号至少有一个有值
if(StringUtil.isBlank(orderDetailsDTO.getOrderCode()) && StringUtil.isBlank(orderDetailsDTO.getWaybillNo()) && StringUtil.isBlank(orderDetailsDTO.getOrderPackageCode()) && StringUtil.isBlank(orderDetailsDTO.getServiceNumber()) && StringUtil.isBlank(orderDetailsDTO.getTrunklineCarsNo())){
if (StringUtil.isBlank(orderDetailsDTO.getOrderCode()) && StringUtil.isBlank(orderDetailsDTO.getWaybillNo()) && StringUtil.isBlank(orderDetailsDTO.getOrderPackageCode()) && StringUtil.isBlank(orderDetailsDTO.getServiceNumber()) && StringUtil.isBlank(orderDetailsDTO.getTrunklineCarsNo())) {
return R.fail("订单号 运单号 包件码 服务号 客户车次号至少有一个有值");
}
@ -306,7 +312,7 @@ public class TrunklineAdvanceDetailServiceImpl extends BaseServiceImpl<Trunkline
orderDetailsDTO.setCreateTimeEnd(CommonUtil.getEndByDateStr(orderDetailsDTO.getCreateTimeEndStr()));
IPage<OrderDetailInfoVO> pageList = baseMapper.findOrderDetails(page,orderDetailsDTO);
IPage<OrderDetailInfoVO> pageList = baseMapper.findOrderDetails(page, orderDetailsDTO);
return R.data(pageList);
}
@ -327,7 +333,7 @@ public class TrunklineAdvanceDetailServiceImpl extends BaseServiceImpl<Trunkline
@Override
public void deletedAdvanceByOrderCode(String orderCode) {
if(StrUtil.isNotEmpty(orderCode)){
if (StrUtil.isNotEmpty(orderCode)) {
baseMapper.deletedAdvanceByOrderCode(orderCode);
}
}

Loading…
Cancel
Save