Browse Source

Merge branch 'pre-production'

master
zhenghaoyu 1 year ago
parent
commit
8f3fa137d0
  1. 50
      blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataFactoryCategoryEntity.java
  2. 20
      blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataFactoryCategoryClient.java
  3. 5
      blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/vo/BasicdataTrayVO.java
  4. 2
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockArticleVO.java
  5. 2
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/InComingDTO.java
  6. 4
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataClientController.java
  7. 69
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataFactoryCategoryController.java
  8. 12
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/dto/BasicdataFactoryCategoryDTO.java
  9. 20
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataFactoryCategoryEntityClient.java
  10. 19
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataFactoryCategoryMapper.java
  11. 40
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataFactoryCategoryMapper.xml
  12. 5
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataTrayMapper.xml
  13. 17
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataFactoryCategoryService.java
  14. 49
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataFactoryCategoryServiceImpl.java
  15. 13
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataTrayServiceImpl.java
  16. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java
  17. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockArticleController.java
  18. 8
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/excel/DistributionStockArticleExcel.java
  19. 13
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.xml
  20. 11
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleMapper.xml
  21. 63
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java
  22. 114
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java
  23. 78
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java
  24. 179
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java
  25. 26
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java
  26. 2
      blade-service/logpm-factory-data/logpm-factory-data-zbom/src/main/java/com/logpm/factorydata/zbom/mapper/OrderPackageMapper.xml
  27. 6
      blade-service/logpm-factory-data/logpm-factory-data-zbom/src/main/java/com/logpm/factorydata/zbom/mq/ZbomFactoryOrderListener.java
  28. 18
      blade-service/logpm-factory-data/logpm-factory-data-zbom/src/main/java/com/logpm/factorydata/zbom/mq/ZbomNodeDataPushListener.java
  29. 12
      blade-service/logpm-factory-data/logpm-factory-data-zbom/src/main/java/com/logpm/factorydata/zbom/util/ZbomUtil.java
  30. 4
      blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/SyncOrderInfoServiceImpl.java
  31. 17
      blade-service/logpm-report/pom.xml
  32. 4
      blade-service/logpm-report/src/main/java/com/logpm/report/controller/IndexCountController.java
  33. 30
      blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportBillLoadingController.java
  34. 27
      blade-service/logpm-report/src/main/java/com/logpm/report/mapper/InLibraryDeliverMapper.java
  35. 24
      blade-service/logpm-report/src/main/java/com/logpm/report/mapper/InLibraryDeliverMapper.xml
  36. 33
      blade-service/logpm-report/src/main/java/com/logpm/report/service/InLibraryDeliverService.java
  37. 2
      blade-service/logpm-report/src/main/java/com/logpm/report/service/IndexCountService.java
  38. 87
      blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/InLibraryDeliverServiceImpl.java
  39. 56
      blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/IndexCountServiceImpl.java
  40. 6
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceDetailMapper.xml
  41. 5
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceMapper.xml
  42. 103
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/InComingServiceImpl.java
  43. 13
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java

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

@ -0,0 +1,50 @@
package com.logpm.basicdata.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
@Data
@TableName("logpm_basicdata_factory_category")
@ApiModel(value = "BasicdataFactoryCategory对象", description = "工厂物料映射表")
@EqualsAndHashCode(callSuper = true)
public class BasicdataFactoryCategoryEntity extends TenantEntity {
/**
* 预留1
*/
@ApiModelProperty(value = "预留1")
private String reserve1;
/**
* 预留2
*/
@ApiModelProperty(value = "预留2")
private String reserve2;
/**
* 预留3
*/
@ApiModelProperty(value = "预留3")
private String reserve3;
/**
* 预留4
*/
@ApiModelProperty(value = "预留4")
private String reserve4;
/**
* 预留5
*/
@ApiModelProperty(value = "预留5")
private String reserve5;
private Long categoryId;
private String firsts;
private String seconds;
private String thirds;
private String brand;
}

20
blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataFactoryCategoryClient.java

@ -0,0 +1,20 @@
package com.logpm.basicdata.feign;
import com.logpm.basicdata.entity.BasicdataFactoryCategoryEntity;
import org.springblade.common.constant.ModuleNameConstant;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
@FeignClient(
value = ModuleNameConstant.APPLICATION_BASICDATA_NAME
)
public interface IBasicdataFactoryCategoryClient {
String API_PREFIX = "factoryCategory/client";
String TOP = API_PREFIX + "/top";
@GetMapping(API_PREFIX+"/findEntityByAdvanceDetailIds")
BasicdataFactoryCategoryEntity findEntityByAdvanceDetailIds(@RequestParam("current") Integer current, @RequestParam("size") Integer size);
}

5
blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/vo/BasicdataTrayVO.java

@ -44,4 +44,9 @@ public class BasicdataTrayVO extends BasicdataTrayEntity {
@ApiModelProperty(value = "禁用状态(值)")
private String disableTypeName;
@ApiModelProperty(value = "打托方式")
private String trayType;
@ApiModelProperty(value = "打托方式显示")
private String trayTypeString;
}

2
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockArticleVO.java

@ -59,7 +59,7 @@ public class DistributionStockArticleVO extends DistributionStockArticleEntity {
@ApiModelProperty(value = "托盘")
private String pallet;
/**
* 托盘
* 包条码
*/
@ApiModelProperty(value = "包条码")
private String orderPackageCode;

2
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/InComingDTO.java

@ -24,4 +24,6 @@ public class InComingDTO implements Serializable {
private List<Long> advanceIds;//暂存单ids
private List<String> orderCodes;
}

4
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataClientController.java

@ -192,7 +192,7 @@ public class BasicdataClientController extends BladeController {
@GetMapping("/listName")
@ApiOperationSupport(order = 3)
@ApiOperation(value = "分页", notes = "传入basicdataClient")
public R<List<BasicdataClientEntity>> listName(String name) {
public R<List<BasicdataClientEntity>> listName(@RequestParam String name) {
List<BasicdataClientEntity> pages = basicdataClientService.listName(name);
return R.data(pages);
}
@ -203,7 +203,7 @@ public class BasicdataClientController extends BladeController {
@GetMapping("/listCode")
@ApiOperationSupport(order = 3)
@ApiOperation(value = "分页", notes = "传入basicdataClient")
public R<List<BasicdataClientEntity>> listCode(String code) {
public R<List<BasicdataClientEntity>> listCode(@RequestParam String code) {
List<BasicdataClientEntity> pages = basicdataClientService.listCode(code);
return R.data(pages);
}

69
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataFactoryCategoryController.java

@ -0,0 +1,69 @@
package com.logpm.basicdata.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.logpm.basicdata.dto.BasicdataFactoryCategoryDTO;
import com.logpm.basicdata.entity.BasicdataFactoryCategoryEntity;
import com.logpm.basicdata.service.IBasicdataFactoryCategoryService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.exception.CustomerException;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.*;
@Slf4j
@RestController
@AllArgsConstructor
@RequestMapping("/factoryCategory")
@Api(value = "工厂物料映射", tags = "工厂物料映射接口")
public class BasicdataFactoryCategoryController extends BladeController {
private final IBasicdataFactoryCategoryService basicdataFactoryCategoryService;
@ResponseBody
@PostMapping("/pageList")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "提货单列表", notes = "传入basicdataFactoryCategoryDTO")
public R pageList(@RequestBody BasicdataFactoryCategoryDTO basicdataFactoryCategoryDTO) {
String method = "############pageList: ";
log.info(method+"请求参数{}",basicdataFactoryCategoryDTO);
try{
IPage<BasicdataFactoryCategoryEntity> pages = basicdataFactoryCategoryService.pageList(basicdataFactoryCategoryDTO);
return R.data(pages);
}catch (CustomerException e){
log.error(e.message,e);
return R.fail(e.code,e.message);
}catch (Exception e){
log.error("############sendOrders: 系统异常",e);
return R.fail(500,"############sendOrders: 系统异常");
}
}
@ResponseBody
@PostMapping("/save")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "提货单列表", notes = "传入basicdataFactoryCategoryDTO")
public R save(@RequestBody BasicdataFactoryCategoryDTO basicdataFactoryCategoryDTO) {
String method = "############save: ";
log.info(method+"请求参数{}",basicdataFactoryCategoryDTO);
try{
return basicdataFactoryCategoryService.saveEntity(basicdataFactoryCategoryDTO);
}catch (CustomerException e){
log.error(e.message,e);
return R.fail(e.code,e.message);
}catch (Exception e){
log.error("############sendOrders: 系统异常",e);
return R.fail(500,"############sendOrders: 系统异常");
}
}
}

12
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/dto/BasicdataFactoryCategoryDTO.java

@ -0,0 +1,12 @@
package com.logpm.basicdata.dto;
import com.logpm.basicdata.entity.BasicdataFactoryCategoryEntity;
import lombok.Data;
@Data
public class BasicdataFactoryCategoryDTO extends BasicdataFactoryCategoryEntity {
private Integer pageSize;
private Integer pageNum;
}

20
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataFactoryCategoryEntityClient.java

@ -0,0 +1,20 @@
package com.logpm.basicdata.feign;
import com.logpm.basicdata.entity.BasicdataFactoryCategoryEntity;
import com.logpm.basicdata.service.IBasicdataFactoryCategoryService;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
@ApiIgnore()
@RestController
@AllArgsConstructor
public class BasicdataFactoryCategoryEntityClient implements IBasicdataFactoryCategoryClient{
private final IBasicdataFactoryCategoryService factoryCategoryService;
@Override
public BasicdataFactoryCategoryEntity findEntityByAdvanceDetailIds(Integer current, Integer size) {
return null;
}
}

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

@ -0,0 +1,19 @@
package com.logpm.basicdata.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.basicdata.dto.BasicdataFactoryCategoryDTO;
import com.logpm.basicdata.entity.BasicdataFactoryCategoryEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface BasicdataFactoryCategoryMapper extends BaseMapper<BasicdataFactoryCategoryEntity> {
IPage<BasicdataFactoryCategoryEntity> pageList(IPage<Object> page,@Param("param") BasicdataFactoryCategoryDTO basicdataFactoryCategoryDTO);
BasicdataFactoryCategoryEntity findEntityByParam(@Param("param") BasicdataFactoryCategoryDTO basicdataFactoryCategoryDTO);
}

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

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.logpm.basicdata.mapper.BasicdataFactoryCategoryMapper">
<select id="pageList" resultType="com.logpm.basicdata.entity.BasicdataFactoryCategoryEntity">
select *
from logpm_basicdata_factory_category
where 1=1
<if test="param.brand != null and param.brand != ''">
and brand = #{param.brand}
</if>
</select>
<select id="findEntityByParam" resultType="com.logpm.basicdata.entity.BasicdataFactoryCategoryEntity">
select *
from logpm_basicdata_factory_category
where 1=1
and brand = #{param.brand}
and is_deleted = 0
<if test="param.firsts == null or param.firsts == ''">
and (firsts is null or firsts = '')
</if>
<if test="param.firsts != null and param.firsts != ''">
and firsts = #{param.firsts}
</if>
<if test="param.seconds == null or param.seconds == ''">
and (seconds is null or seconds = '')
</if>
<if test="param.seconds != null and param.seconds != ''">
and seconds = #{param.seconds}
</if>
<if test="param.thirds == null or param.thirds == ''">
and (thirds is null or thirds = '')
</if>
<if test="param.thirds != null and param.thirds != ''">
and thirds = #{param.thirds}
</if>
</select>
</mapper>

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

@ -60,9 +60,11 @@
tray.disable_type,
tray.tray_status,
warehouse.name AS warehouseName,
tray.`type`
tray.`type`,
lwtt.tray_type
FROM
logpm_warehouse_tray AS tray
left join logpm_warehouse_tray_type lwtt on tray.id = lwtt.tray_id
INNER JOIN logpm_warehouse_warehouse AS warehouse ON tray.warehouse_id = warehouse.id
<where>
tray.is_deleted = '0'
@ -95,6 +97,7 @@
ldpl.service_number serviceNumber,
ldpl.waybill_number waybillNumber,
ldpl.order_package_code orderPackageCode,
ldpl.order_code,
ldpl.warehouse warehouse,
ldpl.firsts firsts,
ldpl.SECOND SECOND,

17
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataFactoryCategoryService.java

@ -0,0 +1,17 @@
package com.logpm.basicdata.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.basicdata.dto.BasicdataFactoryCategoryDTO;
import com.logpm.basicdata.entity.BasicdataFactoryCategoryEntity;
import com.logpm.basicdata.entity.BasicdataFreightEntity;
import org.springblade.core.mp.base.BaseService;
import org.springblade.core.tool.api.R;
public interface IBasicdataFactoryCategoryService extends BaseService<BasicdataFactoryCategoryEntity> {
IPage<BasicdataFactoryCategoryEntity> pageList(BasicdataFactoryCategoryDTO basicdataFactoryCategoryDTO);
R saveEntity(BasicdataFactoryCategoryDTO basicdataFactoryCategoryDTO);
}

49
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataFactoryCategoryServiceImpl.java

@ -0,0 +1,49 @@
package com.logpm.basicdata.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.logpm.basicdata.dto.BasicdataFactoryCategoryDTO;
import com.logpm.basicdata.entity.BasicdataFactoryCategoryEntity;
import com.logpm.basicdata.mapper.BasicdataFactoryCategoryMapper;
import com.logpm.basicdata.service.IBasicdataFactoryCategoryService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.api.R;
import org.springframework.stereotype.Service;
import java.util.Objects;
@Slf4j
@Service
@AllArgsConstructor
public class BasicdataFactoryCategoryServiceImpl extends BaseServiceImpl<BasicdataFactoryCategoryMapper, BasicdataFactoryCategoryEntity> implements IBasicdataFactoryCategoryService {
@Override
public IPage<BasicdataFactoryCategoryEntity> pageList(BasicdataFactoryCategoryDTO basicdataFactoryCategoryDTO) {
IPage<Object> page = new Page<>();
page.setCurrent(basicdataFactoryCategoryDTO.getPageNum());
page.setSize(basicdataFactoryCategoryDTO.getPageSize());
IPage<BasicdataFactoryCategoryEntity> pageList = baseMapper.pageList(page,basicdataFactoryCategoryDTO);
return pageList;
}
@Override
public R saveEntity(BasicdataFactoryCategoryDTO basicdataFactoryCategoryDTO) {
BasicdataFactoryCategoryEntity basicdataFactoryCategoryEntity = baseMapper.findEntityByParam(basicdataFactoryCategoryDTO);
if(Objects.isNull(basicdataFactoryCategoryEntity)){
log.warn("############saveEntity: 已存在该配置");
return R.fail(405,"已存在该配置");
}
save(basicdataFactoryCategoryDTO);
return R.success("保存成功");
}
}

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

@ -44,6 +44,7 @@ import com.logpm.warehouse.vo.WarehouseTraybarCode;
import lombok.AllArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.springblade.common.constant.CodeNumConstant;
import org.springblade.common.constant.DictBizConstant;
import org.springblade.common.utils.QRCodeUtil;
import org.springblade.common.utils.TemplateUtil;
import org.springblade.core.log.exception.ServiceException;
@ -52,6 +53,7 @@ import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.system.cache.DictBizCache;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -148,13 +150,12 @@ public class BasicdataTrayServiceImpl extends BaseServiceImpl<BasicdataTrayMappe
@Override
public IPage<BasicdataTrayVO> selectTrayList(IPage<Object> page, Map<String, Object> basicdataTray) {
//获取当前登录人仓库
// List<BasicdataWarehouseEntity> myWatchWarehouse = basicdataWarehouseService.getMyWatchWarehouse();
// List<Long> collect = myWatchWarehouse.stream()
// .map(BasicdataWarehouseEntity::getId)
// .collect(Collectors.toList());
// basicdataTray.put("warehouseList",collect);
IPage<BasicdataTrayVO> trayList= trayMapper.selectTrayList(page,basicdataTray);
for (int i = 0; i < trayList.getRecords().size(); i++) {
if(ObjectUtils.isNotNull(trayList.getRecords().get(i).getTrayType())){
trayList.getRecords().get(i).setTrayTypeString(DictBizCache.getValue(DictBizConstant.PALLET_ORDER_TYPE, trayList.getRecords().get(i).getTrayType()));
}
}
return trayList;
}

2
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java

@ -534,7 +534,7 @@ public class DistributionDeliveryListController extends BladeController {
@PostMapping("/cancelDelivery")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "PC取消包件")
@ApiOperation(value = "PC取消配送任务")
public R cancelDelivery(@Valid @RequestBody DistrilbutionAppsignforDTO distrilbutionloadingscanDTO) {
R r = distributionDeliveryListService.cancelDelivery(distrilbutionloadingscanDTO.getDeliveryId());
// if (r.isSuccess()){

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

@ -447,7 +447,7 @@ public class DistributionStockArticleController extends BladeController {
public void exportDistributionStockArticle(@ApiIgnore @RequestParam Map<String, Object> paramMap, BladeUser bladeUser, HttpServletResponse response) {
List<DistributionStockArticleExcel> list = distributionStockArticleService.exportDistributionStockArticle(paramMap);
ExcelUtil.export(response, "已签订单数据" + DateUtil.time(), "已签订单数据数据表", list, DistributionStockArticleExcel.class);
ExcelUtil.export(response, "在库订单明细" + DateUtil.time(), "在库订单明细", list, DistributionStockArticleExcel.class);
}
// /**

8
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/excel/DistributionStockArticleExcel.java

@ -181,6 +181,10 @@ public class DistributionStockArticleExcel implements Serializable {
@ColumnWidth(20)
@ExcelProperty("所在托盘")
private String trays;
@ColumnWidth(20)
@ExcelProperty("所在货位")
private String allocation;
/**
* 冻结状态
*/
@ -257,6 +261,10 @@ public class DistributionStockArticleExcel implements Serializable {
@ColumnWidth(20)
@ExcelProperty("创建时间")
private Date createTime;
@ColumnWidth(20)
@ExcelProperty("是否零单")
private String isZeroString;
// /**
// * 配载件数
// */

13
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.xml

@ -887,6 +887,7 @@
</if>
</where>
GROUP BY lddl.id
ORDER BY lddl.create_time DESC
</select>
<select id="getDeliveryStockArticleInfo" resultType="com.logpm.distribution.vo.DistributionStockArticleVO">
@ -2030,8 +2031,16 @@
</select>
<select id="selectSignforByDeliveryId"
resultType="com.logpm.distribution.entity.DistributionSignforEntity">
SELECT * FROM logpm_distribution_signfor AS lds LEFT JOIN logpm_distribution_reservation AS ldr ON lds.reservation_id = ldr.id
WHERE lds.delivery_id = #{deliveryId} AND (ldr.reservation_num + ldr.reservation_stock_list_num) > 0
SELECT
lds.*
FROM
logpm_distribution_signfor AS lds
LEFT JOIN ( SELECT b.id,(b.reservation_num+b.reservation_stock_list_num) AS num FROM logpm_distribution_signfor AS a LEFT JOIN logpm_distribution_reservation AS b ON a.reservation_id = b.id GROUP BY a.reservation_id) AS t ON lds.reservation_id = t.id
WHERE
lds.delivery_id = #{deliveryId}
ANd t.num > 0
GROUP BY
lds.reservation_id
</select>
</mapper>

11
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleMapper.xml

@ -825,14 +825,15 @@
ldsa.accept_warehouse_id,
ldsa.accept_warehouse_name,
ldsa.order_delivery_status,
group_concat(DISTINCT lwtg.tray_code) as trays,
group_concat(DISTINCT lwt.pallet_name) as trays,
group_concat(DISTINCT lwug.position_code) as allocation
from logpm_platform.logpm_distribution_stock_article ldsa
left join logpm_platform.logpm_distribution_parcel_list ldpl on ldsa.id = ldpl.stock_article_id and ldpl.tenant_id = '627683'
left join logpm_platform.logpm_warehouse_tray_goods lwtg on lwtg.association_id = ldpl.id
left join logpm_platform.logpm_warehouse_updown_goods lwug on lwug.association_id = ldpl.id
left JOIN logpm_warehouse_tray lwt on lwtg.tray_id= lwt.id
<where>
ldsa.is_deleted = 0
ldsa.is_deleted = 0 and ldsa.order_status != '80'
<if test="paramMap.warehouseId != null and paramMap.warehouseId != ''">
and ldsa.warehouse_id = #{paramMap.warehouseId}
</if>
@ -978,8 +979,10 @@
ldpl.order_package_code,
ldpl.cargo_title,
ldpl.shelf_title,
ldpl.goods_allocation,
ldpl.pallet,
(SELECT lwga.qr_code from logpm_warehouse_updown_goods lwug left join
logpm_warehouse_goods_allocation lwga on lwga.id = lwug.allocation_id
where association_value=ldpl.order_package_code) goods_allocation,
(SELECT lwt.pallet_name from logpm_warehouse_tray_goods lwtg LEFT JOIN logpm_warehouse_tray lwt on lwt.id=lwtg.tray_id where lwtg.association_value=ldpl.order_package_code ) pallet,
ldpl.firsts_code,
ldpl.firsts,
ldpl.second_code,

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

@ -2773,6 +2773,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
distributionReservationMapper.insert(reservationEntity);
//新增一个客户
v.forEach(s -> {
List<Long> packageLockIds = new ArrayList<>();
//预约单数据填充
if (Func.isNotEmpty(s.getMallName())) {
mallName.add(s.getMallName());
@ -2841,7 +2842,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
dp.setOrderPackageReservationStatus(OrderPackageReservationStatusConstant.yiyueyue.getValue());
distributionParcelListService.updateById(dp);
distributionAsyncService.checkStockArticleReservationStatus(dp);
packageLockIds.add(dp.getId());
}
}
// stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue());
@ -2861,6 +2862,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
distributionReservationPackageService.save(reservationPackageEntity);
p.setOrderPackageReservationStatus(OrderPackageReservationStatusConstant.yiyueyue.getValue());
distributionParcelListService.updateById(p);
packageLockIds.add(p.getId());
//这里根据包件进行订单状态的改变
// distributionAsyncService.checkStockArticleReservationStatus(p);
});
@ -2888,6 +2890,8 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
distributionParcelNumberService.updateById(p);
orderPackageNum.getAndAdd(distributionReservationZeroPackageEntity.getQuantity());
distributionAsyncService.checkZeroStockArticleReservationStatus(Func.copy(p, DistributionParcelNumberEntity.class));
packageLockIds.add(p.getParcelListId());
}
});
} else {
@ -2908,6 +2912,8 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
distributionParcelNumberService.updateById(l);
orderPackageNum.getAndAdd(distributionReservationZeroPackageEntity.getQuantity());
distributionAsyncService.checkZeroStockArticleReservationStatus(Func.copy(l, DistributionParcelNumberEntity.class));
packageLockIds.add(l.getParcelListId());
});
} else {
log.error("###########################零担订单查询品类错误,订单ID:{}", s.getId());
@ -2926,6 +2932,21 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
distributionReservationStockarticleService.save(reservationStockarticleEntity);
packageTotal.getAndAdd(reservationStockarticleEntity.getReservationNum());
orderTotal.getAndIncrement();
//添加缓存
if (!packageLockIds.isEmpty()){
List<Long> a = bladeRedis.get("warehouseId:" + myCurrentWarehouse.getId() + "orderCode:" + s.getOrderCode());
if (Func.isNotEmpty(a)){
boolean flag = a.stream().anyMatch(f -> packageLockIds.contains(f));
if (flag){
throw new RuntimeException(s.getOrderCode()+"正在操作,请刷新后尝试");
}else {
packageLockIds.addAll(a);
bladeRedis.setEx("warehouseId:" + myCurrentWarehouse.getId() + "orderCode:" + s.getOrderCode(),packageLockIds,1*60L);
}
}else {
bladeRedis.setEx("warehouseId:" + myCurrentWarehouse.getId() + "orderCode:" + s.getOrderCode(),packageLockIds,1*60L);
}
}
});
// -----------------------客户收货信息完善-------------------------
reservationEntity.setConsignee(String.join(",", consigneeName));
@ -2979,6 +3000,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
List<DistributionReservationStockarticleEntity> reservationStockarticleEntityList = distributionReservationStockarticleMapper.selectList(Wrappers.<DistributionReservationStockarticleEntity>query().lambda().eq(DistributionReservationStockarticleEntity::getReservationId, reservationEntity.getId()).ne(DistributionReservationStockarticleEntity::getStockArticleStatus, ReservationOrderStatusConstant.quxiao.getValue()));
Map<Long, List<DistributionReservationStockarticleEntity>> oldOrder = reservationStockarticleEntityList.stream().collect(Collectors.groupingBy(DistributionReservationStockarticleEntity::getStockArticleId));
v.forEach(s -> {
List<Long> packageLockIds = new ArrayList<>();
orderTotal.getAndIncrement();
//预约单数据填充
if (Func.isNotEmpty(s.getMallName())) {
@ -3040,6 +3062,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
distributionReservationPackageService.save(reservationPackageEntity);
p.setOrderPackageReservationStatus(OrderPackageReservationStatusConstant.yiyueyue.getValue());
distributionParcelListService.updateById(p);
packageLockIds.add(p.getId());
//这里根据包件进行订单状态的改变
// distributionAsyncService.checkStockArticleReservationStatus(p);
});
@ -3070,6 +3093,8 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
dp.setOrderPackageReservationStatus(OrderPackageReservationStatusConstant.yiyueyue.getValue());
distributionParcelListService.updateById(dp);
distributionAsyncService.checkStockArticleReservationStatus(dp);
packageLockIds.add(dp.getId());
}
}
// stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue());
@ -3101,7 +3126,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
distributionParcelNumberService.updateById(p);
orderPackageNum.getAndAdd(distributionReservationZeroPackageEntity.getQuantity());
distributionAsyncService.checkZeroStockArticleReservationStatus(Func.copy(p, DistributionParcelNumberEntity.class));
packageLockIds.add(p.getParcelListId());
}
});
} else {
@ -3122,6 +3147,8 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
distributionParcelNumberService.updateById(l);
orderPackageNum.getAndAdd(distributionReservationZeroPackageEntity.getQuantity());
distributionAsyncService.checkZeroStockArticleReservationStatus(Func.copy(l, DistributionParcelNumberEntity.class));
packageLockIds.add(l.getParcelListId());
});
} else {
log.error("###########################零担订单查询品类错误,订单ID:{}", s.getId());
@ -3177,6 +3204,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
reservationPackageEntity.setParceListId(p.getId());
distributionReservationPackageService.save(reservationPackageEntity);
distributionAsyncService.checkStockArticleReservationStatus(p);
packageLockIds.add(p.getId());
} else {
//依然存在包件,
oldPackageList.remove(p.getId());
@ -3197,6 +3225,14 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
DistributionParcelListEntity parcelListEntity = distributionParcelListService.getById(reservationPackageEntity.getParceListId());
parcelListEntity.setOrderPackageReservationStatus(OrderPackageReservationStatusConstant.daiyuyue.getValue());
distributionParcelListService.updateById(parcelListEntity);
if (Func.isNotEmpty(bladeRedis.get("warehouseId:"+myCurrentWarehouse.getId()+"orderCode:"+parcelListEntity.getOrderCode()))){
List<Long> ids = bladeRedis.get("warehouseId:" + myCurrentWarehouse.getId() + "orderCode:" + parcelListEntity.getOrderCode());
int indexOf = ids.indexOf(parcelListEntity.getId());
if (indexOf>0){
ids.remove(indexOf);
bladeRedis.set("warehouseId:" + myCurrentWarehouse.getId() + "orderCode:" + parcelListEntity.getOrderCode(),ids);
}
}
// distributionAsyncService.checkStockArticleReservationStatus(parcelListEntity);
});
} else {
@ -3282,6 +3318,18 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
//预约订单上的包件数量维护
packageTotal.getAndAdd(reservationStockarticleEntity.getReservationNum());
}
if (!packageLockIds.isEmpty()){
List<Long> a = bladeRedis.get("warehouseId:" + myCurrentWarehouse.getId() + "orderCode:" + s.getOrderCode());
if (Func.isNotEmpty(a)){
boolean flag = a.stream().anyMatch(f -> packageLockIds.contains(f));
if (flag){
throw new RuntimeException(s.getOrderCode()+"正在操作,请刷新后尝试");
}else {
packageLockIds.addAll(a);
bladeRedis.setEx("warehouseId:" + myCurrentWarehouse.getId() + "orderCode:" + s.getOrderCode(),packageLockIds,5*60L);
}
}
}
});
if (Func.isNotEmpty(oldOrder)) {
oldOrder.forEach((m, n) -> {
@ -3322,6 +3370,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
}
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(n.get(0).getStockArticleId());
distributionStockArticleService.maintenanceOrderInfo(stockArticleEntity.getOrderCode(), myCurrentWarehouse.getId());
bladeRedis.del("warehouseId:"+myCurrentWarehouse.getId()+"orderCode:"+stockArticleEntity.getOrderCode());
});
}
//重新维护预约信息
@ -5283,7 +5332,10 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
log.error("配送计划null:{}", deliveryListEntity);
return Resp.scanFail("操作失败", "服务器正忙...");
}
List<DistributionParcelListEntity> parcelListEntities = distributionParcelListService.list(Wrappers.<DistributionParcelListEntity>query().lambda().eq(DistributionParcelListEntity::getOrderPackageCode, distrilbutionloadingscanDTO.getBarcode()));
List<DistributionParcelListEntity> parcelListEntities = distributionParcelListService.list(Wrappers.<DistributionParcelListEntity>query().lambda()
.eq(DistributionParcelListEntity::getOrderPackageCode, distrilbutionloadingscanDTO.getBarcode())
.eq(DistributionParcelListEntity::getWarehouseId, myCurrentWarehouse.getId())
);
if (Func.isNotEmpty(parcelListEntities) && parcelListEntities.size() == 1) {
DistributionParcelListEntity parcelListEntity = parcelListEntities.get(0);
if (OrderPackageLoadingStatusConstant.yizhuangche.getValue().equals(parcelListEntity.getOrderPackageLoadingStatus())) {
@ -5535,7 +5587,10 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
//这里就需要进行零担计划的查询
//对于零担订单对于同一个预约客户而言这里只能出现一种,这里就是单条结果
DistributionReservationStockarticleEntity reservationStockarticleEntity = reservationStockarticleEntityList.get(0);
List<DistributionReservationZeroPackageEntity> reservationZeroPackageEntityList = distributionReservationZeroPackageService.list(Wrappers.<DistributionReservationZeroPackageEntity>query().lambda().eq(DistributionReservationZeroPackageEntity::getReservationId, reservationStockarticleEntity.getReservationId()).eq(DistributionReservationZeroPackageEntity::getStockArticleId, reservationStockarticleEntity.getStockArticleId()).ne(DistributionReservationZeroPackageEntity::getZeroPackageStatus, ReservationPackageStatusConstant.quxiao.getValue()));
List<DistributionReservationZeroPackageEntity> reservationZeroPackageEntityList = distributionReservationZeroPackageService.list(Wrappers.<DistributionReservationZeroPackageEntity>query().lambda().
eq(DistributionReservationZeroPackageEntity::getReservationId, reservationStockarticleEntity.getReservationId()).
eq(DistributionReservationZeroPackageEntity::getStockArticleId, distrilbutionloadingscanDTO.getOrderId()).
ne(DistributionReservationZeroPackageEntity::getZeroPackageStatus, ReservationPackageStatusConstant.quxiao.getValue()));
if (Func.isNotEmpty(reservationZeroPackageEntityList)) {
//查询零担订单品类信息
List<Long> zeroPackageIds = reservationZeroPackageEntityList.stream().map(DistributionReservationZeroPackageEntity::getParcelListId).collect(Collectors.toList());

114
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java

@ -1503,6 +1503,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
HashSet<String> storeName = new HashSet<>();
HashSet<String> receivingUnit = new HashSet<>();
newStockArticle.forEach((k, v) -> {
List<Long> packageLockIds = new ArrayList<>();
if (Func.isEmpty(oldStockArticle.get(k))) {
//这里发生了新增订单的操作
AtomicInteger packageNum = new AtomicInteger();
@ -1517,6 +1518,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
reservationPackageEntity.setPacketBarCode(p.getOrderPackageCode());
reservationPackageEntity.setParceListId(p.getId());
reservationPackageEntity.setReservationId(id);
packageLockIds.add(p.getId());
distributionReservationPackageService.save(reservationPackageEntity);
packageNum.getAndAdd(p.getQuantity());
DistributionParcelListEntity parcelListEntity = distributionParcelListService.getById(p.getId());
@ -1537,6 +1539,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
DistributionReservationPackageEntity distributionReservationPackageEntity = new DistributionReservationPackageEntity();
distributionReservationPackageEntity.setReservationId(id);
distributionReservationPackageEntity.setParceListId(dp.getId());
packageLockIds.add(dp.getId());
distributionReservationPackageEntity.setStockArticleId(distributionStockArticleDTO.getId());
distributionReservationPackageEntity.setPacketBarCode(dp.getOrderPackageCode());
//维护订单下包件信息
@ -1580,6 +1583,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
distributionReservationZeroPackageEntity.setType(DistributionTypeConstant.shipie.getValue());
distributionReservationZeroPackageEntity.setZeroPackageStatus(ReservationOrderStatusConstant.zhengchang.getValue());
distributionReservationZeroPackageService.save(distributionReservationZeroPackageEntity);
packageLockIds.add(p.getParcelListId());
//统计数量
zeroPackageNum.getAndAdd(distributionReservationZeroPackageEntity.getQuantity());
//维护零担订单品类对应数量的冻结数量
@ -1607,20 +1611,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
DistributionParcelNumberEntity parcelNumberEntity = distributionParcelNumberService.getById(l.getId());
parcelNumberEntity.setDeliveryQuantity(parcelNumberEntity.getDeliveryQuantity() + l.getReservationNum());
distributionParcelNumberService.updateById(parcelNumberEntity);
packageLockIds.add(l.getParcelListId());
});
}
// DistributionReservationStockarticleEntity reservationStockarticleEntity = new DistributionReservationStockarticleEntity();
//
// //首先这里需要进行
// reservationStockarticleEntity.setIsZero(IsOrNoConstant.yes.getValue());
// reservationStockarticleEntity.setReservationId(id);
// reservationStockarticleEntity.setStockArticleId(distributionStockArticleDTO.getId());
// reservationStockarticleEntity.setStockArticleStatus(ReservationOrderStatusConstant.zhengchang.getValue());
// reservationStockarticleEntity.setStockArticleCode(distributionStockArticleDTO.getOrderCode());
// reservationStockarticleEntity.setIsHaveData(distributionStockArticleDTO.getIsHaveData());
// reservationStockarticleEntity.setReservationNum(zeroPackageNum.get());
// distributionReservationStockarticleService.save(reservationStockarticleEntity);
// packTotal.getAndAdd(reservationStockarticleEntity.getReservationNum());
}
DistributionReservationStockarticleEntity reservationStockarticleEntity = new DistributionReservationStockarticleEntity();
reservationStockarticleEntity.setStockArticleStatus(ReservationOrderStatusConstant.zengjia.getValue());
@ -1666,6 +1659,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
reservationPackageEntity.setPacketBarCode(distributionParcelListEntity.getOrderPackageCode());
reservationPackageEntity.setParceListId(distributionParcelListEntity.getId());
reservationPackageEntity.setReservationId(id);
packageLockIds.add(distributionParcelListEntity.getId());
distributionReservationPackageService.save(reservationPackageEntity);
packageNum.getAndAdd(distributionParcelListEntity.getQuantity());
DistributionParcelListEntity parcelListEntity = distributionParcelListService.getById(distributionParcelListEntity.getId());
@ -1688,6 +1682,15 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
DistributionParcelListEntity parcelListEntity = distributionParcelListService.getById(reservationPackageEntity.getParceListId());
parcelListEntity.setOrderPackageReservationStatus(OrderPackageReservationStatusConstant.daiyuyue.getValue());
distributionParcelListService.updateById(parcelListEntity);
if (Func.isNotEmpty(bladeRedis.get("warehouseId:"+myCurrentWarehouse.getId()+"orderCode:"+parcelListEntity.getOrderCode()))){
List<Long> ids = bladeRedis.get("warehouseId:" + myCurrentWarehouse.getId() + "orderCode:" + parcelListEntity.getOrderCode());
int indexOf = ids.indexOf(parcelListEntity.getId());
if (indexOf>0){
ids.remove(indexOf);
bladeRedis.setEx("warehouseId:" + myCurrentWarehouse.getId() + "orderCode:" + parcelListEntity.getOrderCode(),ids,1*60L);
}
}
//移除缓存
});
reservationStockarticleEntity.setReservationNum(packageNum.get());
distributionReservationStockarticleService.updateById(reservationStockarticleEntity);
@ -1745,6 +1748,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
zeroPackageEntity.setParcelListId(p.getParcelListId());
zeroPackageEntity.setCategoryName(p.getFirsts());
zeroPackageEntity.setQuantity(p.getReservationNum());
packageLockIds.add(p.getParcelListId());
zeroPackageEntity.setZeroPackageStatus(ReservationOrderStatusConstant.zengjia.getValue());
zeroPackageEntity.setType(DistributionTypeConstant.shipie.getValue());
zeroPackageEntity.setReservationId(id);
@ -1787,11 +1791,29 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
// stockArticleEntity.setReservationStatus(status);
// distributionStockArticleService.updateById(stockArticleEntity);
}
//添加缓存
if (!packageLockIds.isEmpty()){
List<Long> a = bladeRedis.get("warehouseId:" + myCurrentWarehouse.getId() + "orderCode:" + v.get(0).getOrderCode());
if (Func.isNotEmpty(a)){
boolean flag = a.stream().anyMatch(f -> packageLockIds.contains(f));
if (flag){
log.error("###############预约新增订单同时操作");
//当前操作包件存在于缓存中,此次操作无效
throw new RuntimeException(v.get(0).getOrderCode()+"正在操作,请刷新后尝试");
}else {
packageLockIds.addAll(a);
bladeRedis.setEx("warehouseId:" + myCurrentWarehouse.getId() + "orderCode:" + v.get(0).getOrderCode(),packageLockIds,1*60L);
}
}else {
bladeRedis.setEx("warehouseId:" + myCurrentWarehouse.getId() + "orderCode:" + v.get(0).getOrderCode(),packageLockIds,1*60L);
}
}
});
if (Func.isNotEmpty(oldStockArticle)) {
oldStockArticle.forEach((i, j) -> {
//这里就是需要进行取消的订单信息
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(i);
DistributionReservationStockarticleEntity reservationStockarticleEntity = j.get(0);
if (reservationStockarticleEntity.getIsZero().equals(IsOrNoConstant.no.getValue())) {
reservationStockarticleEntity.setStockArticleStatus(ReservationOrderStatusConstant.quxiao.getValue());
@ -1803,6 +1825,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
DistributionParcelListEntity parcelListEntity = distributionParcelListService.getById(p.getParceListId());
parcelListEntity.setOrderPackageReservationStatus(OrderPackageReservationStatusConstant.daiyuyue.getValue());
distributionParcelListService.updateById(parcelListEntity);
bladeRedis.del("warehouseId:" + myCurrentWarehouse.getId() + "orderCode:" + stockArticleEntity.getOrderCode());
});
} else {
//订单零担移除
@ -1822,12 +1845,12 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
zp.setQuantity(0);
zp.setZeroPackageStatus(ReservationOrderStatusConstant.quxiao.getValue());
distributionReservationZeroPackageService.updateById(zp);
bladeRedis.del("warehouseId:" + myCurrentWarehouse.getId() + "orderCode:" + stockArticleEntity.getOrderCode());
});
reservationStockarticleEntity.setReservationNum(0);
reservationStockarticleEntity.setStockArticleStatus(ReservationOrderStatusConstant.quxiao.getValue());
}
//需要修改订单的状态
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(i);
DistributionStockArticleDTO stockArticleDTO = Func.copy(stockArticleEntity, DistributionStockArticleDTO.class);
//维护订单信息
distributionStockArticleService.maintenanceOrderInfo(stockArticleDTO.getOrderCode(),myCurrentWarehouse.getId());
@ -2121,6 +2144,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
//运单客户收货单位
HashSet<String> consignee = new HashSet<>();
v.forEach(s -> {
List<Long> packageLockIds = new ArrayList<>();
DistributionStockArticleDTO stockArticleDTO = Func.copy(s, DistributionStockArticleDTO.class);
// WarehouseWaybillEntity warehouseWaybillEntity = warehouseWaybillClient.findByWaybillNo(s.getWaybillNumber());
// if (Func.isNotEmpty(warehouseWaybillEntity.getConsigneeMobile())){
@ -2197,6 +2221,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
distributionReservationPackageService.save(reservationPackageEntity);
p.setOrderPackageReservationStatus(OrderPackageReservationStatusConstant.yiyueyue.getValue());
distributionParcelListService.updateById(p);
packageLockIds.add(p.getId());
//这里根据包件进行订单状态的改变
// distributionAsyncService.checkStockArticleReservationStatus(p);
});
@ -2230,7 +2255,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
dp.setOrderPackageReservationStatus(OrderPackageReservationStatusConstant.yiyueyue.getValue());
distributionParcelListService.updateById(dp);
distributionAsyncService.checkStockArticleReservationStatus(dp);
packageLockIds.add(dp.getId());
}
}
@ -2265,6 +2290,8 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
distributionParcelNumberService.updateById(p);
reservationOrderNum.getAndAdd(distributionReservationZeroPackageEntity.getQuantity());
distributionAsyncService.checkZeroStockArticleReservationStatus(Func.copy(p, DistributionParcelNumberEntity.class));
packageLockIds.add(p.getParcelListId());
}
});
} else {
@ -2298,6 +2325,8 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
distributionStockArticleService.maintenanceOrderInfo(s.getOrderCode(),s.getWarehouseId());
//维护包件状态
distributionParcelListService.maintenanceZeroPackageInfo(l.getParcelListId(),l.getWarehouseId());
packageLockIds.add(l.getParcelListId());
}
});
} else {
@ -2321,6 +2350,23 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
packageTotal.getAndAdd(reservationStockarticleEntity.getReservationNum());
orderTotal.getAndIncrement();
distributionAsyncService.changeOrderReservationStatus(stockArticleDTO);
//进行订单的缓存添加
if (!packageLockIds.isEmpty()){
List<Long> a = bladeRedis.get("warehouseId:" + myCurrentWarehouse.getId() + "orderCode:" + s.getOrderCode());
if (Func.isNotEmpty(a)){
boolean flag = a.stream().anyMatch(f -> packageLockIds.contains(f));
if (flag){
log.info("###################商配存在同时操作订单,订单号:" + s.getOrderCode() + "###################");
throw new RuntimeException(s.getOrderCode()+"正在操作,请刷新后尝试");
}else {
packageLockIds.addAll(a);
bladeRedis.setEx("warehouseId:" + myCurrentWarehouse.getId() + "orderCode:" + s.getOrderCode(),packageLockIds,1*60L);
}
}else {
bladeRedis.setEx("warehouseId:" + myCurrentWarehouse.getId() + "orderCode:" + s.getOrderCode(),packageLockIds,1*60L);
}
}
});
//维护备货任务
DistributionStockupInfoEntity stockupInfoEntity = new DistributionStockupInfoEntity();
@ -2613,6 +2659,11 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
@Override
@Transactional
public boolean cancelReservation(DistributionReservationDTO reservationDTO) {
BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse();
if (Func.isEmpty(myCurrentWarehouse)){
log.error("cancelReservation未授权warehouseId>>>{}", myCurrentWarehouse.getId());
return false;
}
if (Func.isEmpty(reservationDTO)) {
log.error("参数异常allocationDTO>>>{}", reservationDTO);
return false;
@ -2686,7 +2737,8 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
distributionReservationStockarticleService.updateById(rs);
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(rs.getStockArticleId());
distributionStockArticleService.maintenanceOrderInfo(stockArticleEntity.getOrderCode(),stockArticleEntity.getWarehouseId());
//清除缓存
bladeRedis.del("warehouseId:"+myCurrentWarehouse.getId()+"orderCode:"+stockArticleEntity.getOrderCode());
});
}
@ -3103,6 +3155,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
return R.fail("订单已预约!!!");
}
stockArticleList.forEach(s -> {
List<Long> packageLockIds = new ArrayList<>();
if (Func.isNotEmpty(s.getAllocation())) {
s.setAllocation(null);
}
@ -3158,8 +3211,11 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
log.error("#########################无可用包件,订单ID为‘;:{}", s.getId());
throw new RuntimeException(s.getOrderCode() + "无可用包件!!!");
}
List<Long> packageIds = distributionParcelListEntities.stream().map(DistributionParcelListEntity::getId).collect(Collectors.toList());
packageLockIds.addAll(packageIds);
distributionParcelListEntities.forEach(dp -> {
if (!dp.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue())) {
if (!Func.equals(dp.getOrderPackageFreezeStatus(), OrderPackageFreezeStatusConstant.yidongjie.getValue()) && !Func.equals(dp.getOrderPackageReservationStatus(), OrderPackageReservationStatusConstant.yiyueyue.getValue())) {
DistributionReservationPackageEntity distributionReservationPackageEntity = new DistributionReservationPackageEntity();
distributionReservationPackageEntity.setReservationId(reservationId);
@ -3190,6 +3246,8 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
} else {
//维护选中的包件信息
List<Long> packageIds = packageList.stream().map(DistributionParcelListEntity::getId).collect(Collectors.toList());
packageLockIds.addAll(packageIds);
packageList.forEach(p -> {
if (!p.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue())) {
if (!Func.equals(p.getOrderPackageFreezeStatus(), OrderPackageFreezeStatusConstant.yidongjie.getValue()) && !Func.equals(p.getOrderPackageReservationStatus(), OrderPackageReservationStatusConstant.yiyueyue.getValue())) {
@ -3273,6 +3331,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
parcelNumberEntity.setDeliveryQuantity(parcelNumberEntity.getDeliveryQuantity() + distributionReservationZeroPackageEntity.getQuantity());
distributionParcelNumberService.updateById(parcelNumberEntity);
// distributionAsyncService.checkZeroStockArticleReservationStatus(parcelNumberEntity);
packageLockIds.add(p.getParcelListId());
}
});
} else {
@ -3299,6 +3358,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
parcelNumberEntity.setDeliveryQuantity(parcelNumberEntity.getDeliveryQuantity() + distributionReservationZeroPackageEntity.getQuantity());
distributionParcelNumberService.updateById(parcelNumberEntity);
// distributionAsyncService.checkZeroStockArticleReservationStatus(parcelNumberEntity);
packageLockIds.add(l.getParcelListId());
}
});
}
@ -3322,13 +3382,28 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
distributionReservationStockarticleService.save(distributionReservationStockarticleEntity);
packageTotal.getAndAdd(distributionReservationStockarticleEntity.getReservationNum());
// distributionAsyncService.changeOrderReservationStatus(stockArticleDTO);
distributionStockArticleService.maintenanceOrderInfo(s.getOrderCode(),s.getWarehouseId());
// WarehouseWaybillEntity byWaybillNo = warehouseWaybillClient.findByWaybillNo();
// String consigneeMobile = byWaybillNo.getConsigneeMobile();
if (!packageLockIds.isEmpty()){
//判断此类包件是否还存在于缓存中
List<Long> a = bladeRedis.get("warehouseId:" + myCurrentWarehouse.getId() +"orderCode:"+ s.getOrderCode());
if (Func.isNotEmpty(a)){
boolean b = a.stream().anyMatch(f -> packageLockIds.contains(f));
if (b){
log.error("###############预约新增订单同时操作");
//当前操作包件存在于缓存中,此次操作无效
throw new RuntimeException(s.getOrderCode()+"正在操作,请刷新后尝试");
}else {
packageLockIds.addAll(a);
bladeRedis.setEx("warehouseId:" + myCurrentWarehouse.getId() + s.getOrderCode(),packageLockIds,1*60L);
}
}else {
bladeRedis.setEx("warehouseId:" + myCurrentWarehouse.getId() + s.getOrderCode(),packageLockIds,1*60L);
}
}
});
}
//存在库存品构建预约库存品关联信息
@ -3697,6 +3772,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
log.error(method+"计划存在相同ID包件:{}",distributionCancelReservationPackageDTO.getPackageIds());
return R.fail("此包件异常,请联系管理员....");
}
bladeRedis.del("warehouseId:"+myCurrentWarehouse.getId()+"orderCode:"+cancelPackage.get(0).getOrderCode());
}
}
distributionStockArticleService.maintenanceOrderInfo(orderCodes,myCurrentWarehouse.getId());

78
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java

@ -229,6 +229,14 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
.in(DisStockListDetailEntity::getReservationId, reservationIds)
.ne(DisStockListDetailEntity::getStockPackageStatus, ReservationPackageStatusConstant.quxiao.getValue())
);
//查询零担计划
List<DistributionReservationZeroPackageEntity> reservationZeroPackageEntities = distributionReservationZeroPackageService.list(Wrappers.<DistributionReservationZeroPackageEntity>query().lambda()
.in(DistributionReservationZeroPackageEntity::getReservationId, reservationIds)
.ne(DistributionReservationZeroPackageEntity::getZeroPackageStatus, ReservationPackageStatusConstant.quxiao.getValue())
);
Map<Long, List<DistributionParcelListVO>> packageMap;
if (Func.isNotEmpty(distributionParcelListEntities)){
packageMap = distributionParcelListEntities.stream().collect(Collectors.groupingBy(DistributionParcelListVO::getReservationId));
@ -241,6 +249,12 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
}else {
inventoryMap = null;
}
Map<Long,List<DistributionReservationZeroPackageEntity>> zeroPackageMap ;
if (Func.isNotEmpty(reservationZeroPackageEntities)){
zeroPackageMap = reservationZeroPackageEntities.stream().collect(Collectors.groupingBy(DistributionReservationZeroPackageEntity::getReservationId));
}else {
zeroPackageMap = null;
}
distributionSignforVOS.forEach(d -> {
if (d.getDeliveryType().equals(DistributionTypeConstant.shipie.getValue())) {
@ -259,20 +273,57 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
int weiqianshoujianshu = 0;
int zhuangchejianshu = 0;
int qianshoujianshu = 0;
List<DistributionParcelListVO> distributionParcelListVOS = packageMap.get(d.getReservationId());
List<DisStockListDetailEntity> listDetailEntityList = inventoryMap.get(d.getReservationId());
if (Func.isNotEmpty(listDetailEntityList) ) {
zhuangchejianshu += listDetailEntityList.stream().filter(f -> f.getStockLockingStatus().equals(InventoryLoadingStatusConstant.yizhuangche.getValue())).mapToInt(DisStockListDetailEntity::getNum).sum();
if (Func.isNotEmpty(packageMap)){
List<DistributionParcelListVO> distributionParcelListVOS = packageMap.get(d.getReservationId());
if (Func.isNotEmpty(distributionParcelListVOS)) {
weizhuangchejianshu += distributionParcelListVOS.stream().filter(f -> f.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue())).mapToInt(DistributionParcelListEntity::getQuantity).sum();
zhuangchejianshu += distributionParcelListVOS.stream().filter(f -> f.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue())).mapToInt(DistributionParcelListEntity::getQuantity).sum();
weiqianshoujianshu += distributionParcelListVOS.stream().filter(f -> !f.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue())).mapToInt(DistributionParcelListEntity::getQuantity).sum();
qianshoujianshu += distributionParcelListVOS.stream().filter(f -> f.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue())).mapToInt(DistributionParcelListEntity::getQuantity).sum();
}
}
if (Func.isNotEmpty(zeroPackageMap)){
List<DistributionReservationZeroPackageEntity> zeroPackageEntities = zeroPackageMap.get(d.getReservationId());
if (Func.isNotEmpty(zeroPackageEntities)) {
List<Long> zeroPackageIds = zeroPackageEntities.stream().map(DistributionReservationZeroPackageEntity::getParcelListId).collect(Collectors.toList());
//查询这些单子的装车信息
List<DistributionLoadscanEntity> loadscanEntityList = distributionLoadscanService.list(Wrappers.<DistributionLoadscanEntity>query().lambda()
.eq(DistributionLoadscanEntity::getReservationId, d.getReservationId())
.in(DistributionLoadscanEntity::getPackageId, zeroPackageIds)
.ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())
);
//此预约单的零担计划总数
int sum = zeroPackageEntities.stream().mapToInt(DistributionReservationZeroPackageEntity::getQuantity).sum();
if (loadscanEntityList.isEmpty()){
//统计装车
int loadingNum = loadscanEntityList.stream().mapToInt(DistributionLoadscanEntity::getLoadedNub).sum();
//统计签收
int signforNUm = loadscanEntityList.stream().filter(f -> LoadScanSigningStatusConstant.yiqianshou.getValue().equals(f.getSignforState())).mapToInt(DistributionLoadscanEntity::getReceivedQuantity).sum();
//计算未装车
weizhuangchejianshu += (sum - loadingNum);
zhuangchejianshu += loadingNum;
//计算未签收
weiqianshoujianshu += (sum - signforNUm);
qianshoujianshu += signforNUm;
}
}
}
if (Func.isNotEmpty(inventoryMap)){
List<DisStockListDetailEntity> listDetailEntityList = inventoryMap.get(d.getReservationId());
if (Func.isNotEmpty(listDetailEntityList) ) {
zhuangchejianshu += listDetailEntityList.stream().filter(f -> f.getStockLockingStatus().equals(InventoryLoadingStatusConstant.yizhuangche.getValue())).mapToInt(DisStockListDetailEntity::getNum).sum();
// weizhuangchejianshu += list.stream().filter(f -> f.getStockLockingStatus().equals(InventoryLoadingStatusConstant.weizhuangche.getValue())).mapToInt(DisStockListDetailEntity::getNum).sum();
qianshoujianshu += listDetailEntityList.stream().filter(f -> f.getStockSignfoStatus().equals(InventorySigningStatusConstant.yiqianshou.getValue())).mapToInt(DisStockListDetailEntity::getNum).sum();
qianshoujianshu += listDetailEntityList.stream().filter(f -> f.getStockSignfoStatus().equals(InventorySigningStatusConstant.yiqianshou.getValue())).mapToInt(DisStockListDetailEntity::getNum).sum();
// weiqianshoujianshu += list.stream().filter(f -> f.getStockSignfoStatus().equals(InventorySigningStatusConstant.weiqianshou.getValue())).mapToInt(DisStockListDetailEntity::getNum).sum();
}
}
if (Func.isNotEmpty(distributionParcelListVOS)) {
weizhuangchejianshu += distributionParcelListVOS.stream().filter(f -> f.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue())).mapToInt(DistributionParcelListEntity::getQuantity).sum();
zhuangchejianshu += distributionParcelListVOS.stream().filter(f -> f.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue())).mapToInt(DistributionParcelListEntity::getQuantity).sum();
weiqianshoujianshu += distributionParcelListVOS.stream().filter(f -> !f.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue())).mapToInt(DistributionParcelListEntity::getQuantity).sum();
qianshoujianshu += distributionParcelListVOS.stream().filter(f -> f.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue())).mapToInt(DistributionParcelListEntity::getQuantity).sum();
}
//该客户的异常装车件数
Integer abnormalLoading = distributionLoadscanMapper.selectAbnormalLoadingByReservationId(d.getReservationId());
//该客户的异常签收件数
@ -2598,7 +2649,10 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
if (Func.isEmpty(myCurrentWarehouse)) {
return R.fail(403, "未授权!!!");
}
List<DistributionParcelListEntity> parcelListEntityList = distributionParcelListService.list(Wrappers.<DistributionParcelListEntity>query().lambda().eq(DistributionParcelListEntity::getOrderPackageCode, distrilbutionloadingscanDTO.getBarcode()));
List<DistributionParcelListEntity> parcelListEntityList = distributionParcelListService.list(Wrappers.<DistributionParcelListEntity>query().lambda()
.eq(DistributionParcelListEntity::getOrderPackageCode, distrilbutionloadingscanDTO.getBarcode())
.eq(DistributionParcelListEntity::getWarehouseId, myCurrentWarehouse.getId())
);
if (Func.isNotEmpty(parcelListEntityList) && parcelListEntityList.size() == 1) {
DistributionParcelListEntity parcelListEntity = parcelListEntityList.get(0);
if (parcelListEntity.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue())) {

179
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java

@ -174,40 +174,75 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl<Distrib
List<DistributionStockArticleEntity> list = baseMapper.exportDistributionStockArticle(paramMap, idArr);
List<DistributionStockArticleExcel> excelList = new ArrayList<>();
if (list.size() > 61) {
list.parallelStream().forEach(li -> {
li.setCreateUserName(userClient.userInfoById(li.getCreateUser()).getData().getName());
DistributionStockArticleVO distributionStockArticleVO = DistributionStockArticleWrapper.build().entityVO(li);
DistributionStockArticleExcel excel = new DistributionStockArticleExcel();
if (distributionStockArticleVO.getTotalNumber() != null &&
distributionStockArticleVO.getIncomingNum() != null) {
distributionStockArticleVO.setUnreceivedQuantity(
distributionStockArticleVO.getTotalNumber() - distributionStockArticleVO.getIncomingNum()
);
}
BeanUtil.copyProperties(distributionStockArticleVO, excel);
excelList.add(excel);
});
} else {
list.forEach(li -> {
li.setCreateUserName(userClient.userInfoById(li.getCreateUser()).getData().getName());
DistributionStockArticleVO distributionStockArticleVO = DistributionStockArticleWrapper.build().entityVO(li);
DistributionStockArticleExcel excel = new DistributionStockArticleExcel();
if (distributionStockArticleVO.getTotalNumber() != null &&
distributionStockArticleVO.getIncomingNum() != null) {
distributionStockArticleVO.setUnreceivedQuantity(
distributionStockArticleVO.getTotalNumber() - distributionStockArticleVO.getIncomingNum()
);
}
BeanUtil.copyProperties(distributionStockArticleVO, excel);
excelList.add(excel);
});
}
//
list.forEach(li -> {
DistributionStockArticleVO distributionStockArticleVO = buildVo(li);
DistributionStockArticleExcel excel = new DistributionStockArticleExcel();
assert distributionStockArticleVO != null;
if (distributionStockArticleVO.getTotalNumber() != null &&
distributionStockArticleVO.getIncomingNum() != null) {
distributionStockArticleVO.setUnreceivedQuantity(
distributionStockArticleVO.getTotalNumber() - distributionStockArticleVO.getIncomingNum()
);
}
excel.setIsZeroString("1".equals(distributionStockArticleVO.getIsZero())?"是":"否");
BeanUtil.copyProperties(distributionStockArticleVO, excel);
excelList.add(excel);
});
return excelList;
}
/**
* 构建参数
* @param distributionStockArticle
* @return
*/
private DistributionStockArticleVO buildVo(DistributionStockArticleEntity distributionStockArticle) {
DistributionStockArticleVO distributionStockupVO = Objects.requireNonNull(BeanUtil.copy(distributionStockArticle, DistributionStockArticleVO.class));
distributionStockupVO.setTrays(distributionStockArticle.getTrays());
//计算在库天数
if (ObjectUtils.isNotNull(distributionStockArticle.getWarehouseEntryTime())) {
long time1 = distributionStockArticle.getWarehouseEntryTime().getTime(); //入库
long time2 = new Date().getTime(); // 现在
int days = (int) ((time2 - time1) / (1000 * 60 * 60 * 24));
if (days == 0) {
days = 1;
}
distributionStockupVO.setStoreTime(days + "天");
}
if (ObjectUtils.isNotNull(distributionStockArticle.getCompleteSet())) {
switch (distributionStockArticle.getCompleteSet()) {
case 1:
distributionStockupVO.setCompleteSetName("否");
break;
case 2:
distributionStockupVO.setCompleteSetName("是");
break;
}
}
distributionStockupVO.setTypeServerName(DictBizCache.getValue(DictBizConstant.DISTRIBUTION_TYPE, distributionStockupVO.getTypeService()));
distributionStockupVO.setOrderStatusName(DictBizCache.getValue(DictBizConstant.DELIVERY_ORDER_STATUS, distributionStockupVO.getOrderStatus()));
distributionStockupVO.setGroundingStatusName(DictBizCache.getValue(DictBizConstant.BASIC_GROUNDING, distributionStockupVO.getGroundingStatus()));
distributionStockupVO.setFreezeStatusName(DictBizCache.getValue(DictBizConstant.FREEZE_STATUS, distributionStockupVO.getFreezeStatus()));
distributionStockupVO.setReservationStatusName(DictBizCache.getValue(DictBizConstant.ORDER_RESERVATION_STATUS, distributionStockupVO.getReservationStatus()));
distributionStockupVO.setStockupStatusName(DictBizCache.getValue(DictBizConstant.ORDER_STOCKUP_STATUS, distributionStockupVO.getStockupStatus()));
if (ObjectUtils.isNotNull(distributionStockupVO.getCreateUser())) {
distributionStockupVO.setCreateUserName(userClient.userInfoById(distributionStockupVO.getCreateUser()).getData().getName());
}
distributionStockupVO.setOrderReceiveStatusName(DictBizCache.getValue(DictBizConstant.ORDER_RECEIVE_STATUS, distributionStockupVO.getOrderReceiveStatus()));
return distributionStockupVO;
}
/**
* 订单转库存品操作
*
@ -842,7 +877,7 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl<Distrib
@Override
public IPage<DistributionStockArticleEntity> pageListOwe(IPage<Object> page, Map<String, Object> distributionStockArticle) {
DistributionStockArticleOweDTO stockArticleEntity = JSONObject.parseObject(JSONObject.toJSONString(distributionStockArticle), DistributionStockArticleOweDTO.class);
if (Func.isNotEmpty(distributionStockArticle.get("typeServer"))){
if (Func.isNotEmpty(distributionStockArticle.get("typeServer"))) {
stockArticleEntity.setTypeService((String) distributionStockArticle.get("typeServer"));
}
if (Func.isNotEmpty(stockArticleEntity.getOrderCodeNum())) {
@ -1423,11 +1458,11 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl<Distrib
stockArticleEntity.setCompleteSet(1);
if (signNum == 0) {
if (handleNum == 0) {
stockArticleEntity.setOrderStatus("30");
stockArticleEntity.setOrderStatus("20");
} else if (0 < handleNum && handleNum < totalNumber) {
stockArticleEntity.setOrderStatus("30");
stockArticleEntity.setOrderStatus("20");
} else {
stockArticleEntity.setOrderStatus("30");
stockArticleEntity.setOrderStatus("20");
}
} else {
stockArticleEntity.setOrderStatus("70");
@ -1449,9 +1484,9 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl<Distrib
stockArticleEntity.setCompleteSet(2);
if (signNum == 0) {
if (handleNum == 0) {
stockArticleEntity.setOrderStatus("40");
stockArticleEntity.setOrderStatus("20");
} else if (0 < handleNum && handleNum < totalNumber) {
stockArticleEntity.setOrderStatus("30");
stockArticleEntity.setOrderStatus("20");
} else {
stockArticleEntity.setOrderStatus("20");
}
@ -1548,8 +1583,8 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl<Distrib
// || OrderPackageLoadingStatusConstant.weizhuancghe.getValue().equals(f.getOrderPackageLoadingStatus())
// || OrderPackageReservationStatusConstant.daiyuyue.getValue().equals(f.getOrderPackageReservationStatus())
// ).mapToInt(DistributionParcelListEntity::getQuantity).sum();
int a = parcelListEntities.stream().filter(f -> !OrderPackageStatusConstant.yiqianshou.getValue().equals(f.getOrderPackageStatus())&&OrderPackageLoadingStatusConstant.weizhuancghe.getValue().equals(f.getOrderPackageLoadingStatus()))
.mapToInt(DistributionParcelListEntity::getQuantity).sum();
int a = parcelListEntities.stream().filter(f -> !OrderPackageStatusConstant.yiqianshou.getValue().equals(f.getOrderPackageStatus()) && OrderPackageLoadingStatusConstant.weizhuancghe.getValue().equals(f.getOrderPackageLoadingStatus()))
.mapToInt(DistributionParcelListEntity::getQuantity).sum();
inWarehouseQuantity = a;
stockArticleEntity.setHandQuantity(inWarehouseQuantity);
@ -1589,7 +1624,7 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl<Distrib
stockArticleEntity.setOrderStatus(OrderStatusConstant.bufenqianshou.getValue());
}
}
if (inWarehouseQuantity > 0){
if (inWarehouseQuantity > 0) {
stockArticleEntity.setGenre(1);
}
this.updateById(stockArticleEntity);
@ -1612,11 +1647,11 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl<Distrib
deliveryQuantity = parcelNumberEntities.stream().mapToInt(DistributionParcelNumberEntity::getDeliveryQuantity).sum();
loadingQuantity = parcelNumberEntities.stream().mapToInt(DistributionParcelNumberEntity::getOutboundQuantity).sum();
signingQuantity = parcelNumberEntities.stream().mapToInt(DistributionParcelNumberEntity::getSigninQuantity).sum();
log.info("############维护零担数量deliveryQuantity:{}",deliveryQuantity);
log.info("############维护零担数量loadingQuantity:{}",loadingQuantity);
log.info("############维护零担数量inWarehouseQuantity:{}",inWarehouseQuantity);
log.info("############维护零担数量signingQuantity:{}",signingQuantity);
log.info("############维护零担数量TotalNumber:{}",stockArticleEntity.getTotalNumber());
log.info("############维护零担数量deliveryQuantity:{}", deliveryQuantity);
log.info("############维护零担数量loadingQuantity:{}", loadingQuantity);
log.info("############维护零担数量inWarehouseQuantity:{}", inWarehouseQuantity);
log.info("############维护零担数量signingQuantity:{}", signingQuantity);
log.info("############维护零担数量TotalNumber:{}", stockArticleEntity.getTotalNumber());
if (stockArticleEntity.getTotalNumber() == loadingQuantity) {
//此时的出库和总数一致,该零担此时全部进行出库
stockArticleEntity.setOrderStatus(OrderStatusConstant.chuku.getValue());
@ -1625,24 +1660,24 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl<Distrib
} else {
stockArticleEntity.setOrderStatus(OrderStatusConstant.ruku.getValue());
}
if ((loadingQuantity + deliveryQuantity) == 0){
if (stockArticleEntity.getTotalNumber() == inWarehouseQuantity){
if ((loadingQuantity + deliveryQuantity) == 0) {
if (stockArticleEntity.getTotalNumber() == inWarehouseQuantity) {
stockArticleEntity.setOrderStatus(OrderStatusConstant.ruku.getValue());
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.daiyuyue.getValue());
}else if (inWarehouseQuantity > 0){
} else if (inWarehouseQuantity > 0) {
stockArticleEntity.setOrderStatus(OrderStatusConstant.bufenruku.getValue());
}
}else {
} else {
if ((loadingQuantity + deliveryQuantity) == stockArticleEntity.getTotalNumber()) {
//无在库数量则无法进行预约
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue());
}else if ((loadingQuantity + deliveryQuantity) > 0){
} else if ((loadingQuantity + deliveryQuantity) > 0) {
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.bufenyuyue.getValue());
}
}
if (signingQuantity == 0){
if (signingQuantity == 0) {
stockArticleEntity.setOrderStatus(OrderStatusConstant.ruku.getValue());
}else {
} else {
if (stockArticleEntity.getTotalNumber() == signingQuantity) {
stockArticleEntity.setOrderStatus(OrderStatusConstant.qianshou.getValue());
} else if (stockArticleEntity.getTotalNumber() > signingQuantity) {
@ -1657,7 +1692,7 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl<Distrib
stockArticleEntity.setDeliveryQuantity(deliveryQuantity);
stockArticleEntity.setSigninQuantity(signingQuantity);
stockArticleEntity.setDeliveryQuantity(deliveryQuantity);
if (inWarehouseQuantity > 0){
if (inWarehouseQuantity > 0) {
stockArticleEntity.setGenre(1);
}
this.updateById(stockArticleEntity);
@ -1820,7 +1855,7 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl<Distrib
@Override
public void submitHandleNumAndTotalNumberByOrderId(Integer subNum, Long articleId) {
baseMapper.submitHandleNumAndTotalNumberByOrderId(subNum,articleId);
baseMapper.submitHandleNumAndTotalNumberByOrderId(subNum, articleId);
}
/**
@ -1831,24 +1866,24 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl<Distrib
public Boolean maintenanceOrderInfoByWarehouseId(String warehouseId) {
String method = "#######################DistributionStockArticleServiceImpl.maintenanceOrderInfoByWarehouseId";
if (Func.isEmpty(warehouseId)) {
log.info(method+"全表订单状态维护");
log.info(method + "全表订单状态维护");
return false;
}
List<Long> list = Func.toLongList(warehouseId);
LambdaQueryWrapper<DistributionStockArticleEntity> lambda = Wrappers.<DistributionStockArticleEntity>query().lambda();
if (Func.isNotEmpty(list) && list.size()>0){
lambda.in(DistributionStockArticleEntity::getWarehouseId,list);
if (Func.isNotEmpty(list) && list.size() > 0) {
lambda.in(DistributionStockArticleEntity::getWarehouseId, list);
}
List<DistributionStockArticleEntity> distributionStockArticleEntityList = this.list(lambda);
if (Func.isEmpty(distributionStockArticleEntityList)){
log.info(method+"查询订单失败:{}",list);
if (Func.isEmpty(distributionStockArticleEntityList)) {
log.info(method + "查询订单失败:{}", list);
return false;
}
Map<Long, List<DistributionStockArticleEntity>> entityMap = distributionStockArticleEntityList.stream().collect(Collectors.groupingBy(DistributionStockArticleEntity::getWarehouseId));
entityMap.forEach((k,v)->{
entityMap.forEach((k, v) -> {
String orderCodes = v.stream().map(DistributionStockArticleEntity::getOrderCode).distinct().collect(Collectors.joining(","));
log.info(method+"维护订单orderCode:{}",orderCodes);
this.maintenanceOrderInfo(orderCodes,k);
log.info(method + "维护订单orderCode:{}", orderCodes);
this.maintenanceOrderInfo(orderCodes, k);
});
return true;
}
@ -1856,7 +1891,7 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl<Distrib
@Override
public OrderCodeDataVO showOrderCode(Map<String, Object> params) throws Exception {
OrderCodeDataVO orderCodeDataVO = new OrderCodeDataVO();
List<Map<String,Object>> data = new ArrayList<>();
List<Map<String, Object>> data = new ArrayList<>();
BasicPrintTemplateEntity template = basicPrintTemplateClient.getPrintTemplate(PrintTemplateStatusConstant.daiqueren_14.getValue());
if (ObjectUtil.isEmpty(template)) {
throw new ServiceException("模板内容未找到");
@ -1886,23 +1921,23 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl<Distrib
// 订单号 生成二维码
String fileTypeName = QRCodeUtil.createCodeToFile(orderCode);
map.put("imgType", QRCodeUtil.getEmpAutograph(fileTypeName));
if(orderCode.equals(waybillNo)){
map.put("product",descriptionGoods+"("+totalNumber+")");
}else{
if (orderCode.equals(waybillNo)) {
map.put("product", descriptionGoods + "(" + totalNumber + ")");
} else {
QueryWrapper<DistributionParcelListEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("stock_article_id",Long.parseLong(orderId));
queryWrapper.eq("stock_article_id", Long.parseLong(orderId));
List<DistributionParcelListEntity> list = distributionParcelListService.list(queryWrapper);
StringBuilder product = new StringBuilder();
for (DistributionParcelListEntity parcelListEntity : list) {
String firsts = parcelListEntity.getFirsts();
Integer quantity = parcelListEntity.getQuantity();
if(StringUtils.isBlank(product)){
if (StringUtils.isBlank(product)) {
product.append(firsts).append("(").append(quantity).append(")");
}else{
} else {
product.append(",").append(firsts).append("(").append(quantity).append(")");
}
}
map.put("product",product.toString());
map.put("product", product.toString());
}
data.add(map);
@ -1920,7 +1955,7 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl<Distrib
@Override
public IPage<DistributionSignforStockArticleVO> pageSignforListtOwe(IPage<DistributionSignforStockArticleVO> page, Map<String, Object> distributionSignforStockArticle) {
DistributionStockArticleOweDTO stockArticleEntity = JSONObject.parseObject(JSONObject.toJSONString(distributionSignforStockArticle), DistributionStockArticleOweDTO.class);
if (Func.isNotEmpty(distributionSignforStockArticle.get("typeServer"))){
if (Func.isNotEmpty(distributionSignforStockArticle.get("typeServer"))) {
stockArticleEntity.setTypeService((String) distributionSignforStockArticle.get("typeServer"));
}
if (Func.isNotEmpty(stockArticleEntity.getOrderCodeNum())) {
@ -1964,8 +1999,8 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl<Distrib
}
IPage<DistributionSignforStockArticleVO> distributionStockArticleEntityIPage = baseMapper.pageSignforListOwe(page, stockArticleEntity);
//处理创建人
distributionStockArticleEntityIPage.getRecords().forEach(a->{
if (Func.isNotEmpty(a.getCreateUser())){
distributionStockArticleEntityIPage.getRecords().forEach(a -> {
if (Func.isNotEmpty(a.getCreateUser())) {
R<User> userR = userClient.userInfoById(a.getCreateUser());
a.setCreateUserName(userR.getData().getName());
}
@ -1978,7 +2013,7 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl<Distrib
public R findEditCustomerLog(Long orderId) {
QueryWrapper<DistributionOrderCustomerLogEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("order_id",orderId)
queryWrapper.eq("order_id", orderId)
.orderByAsc("create_time");
List<DistributionOrderCustomerLogEntity> list = distributionOrderCustomerLogService.list(queryWrapper);

26
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java

@ -2523,37 +2523,11 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
distributionAsyncService.getInventorySelfPickup(distrilbutionBillLadingInventoryAppVO.getStockArticleId());
}
}else {
return Resp.scanFail("库存品暂未备货请联系库管人员!", "库存品暂未备货请联系库管人员");
}
// //查询签收数量
// List<DistributionBillLadingScanEntity> list = distributionBillLadingScanService.list(Wrappers.<DistributionBillLadingScanEntity>query().lambda()
// .eq(DistributionBillLadingScanEntity::getBillLadingId, billLadingId)
// .eq(DistributionBillLadingScanEntity::getMaterialType, "1")
// .eq(DistributionBillLadingScanEntity::getStockListId, inventoryAppVO.getStockListId())
// );
// if (list.size() == inventoryAppVO.getQuantity() + 1) {
// //修改完成状态
// distributionAsyncService.getInventoryOrderSelfPickup(inventoryAppVO.getLdddId());
// }
// if (list.size() > inventoryAppVO.getQuantity()) {
// return Resp.scanFail("已完成!", "已完成!!");
// }
// //修改库存品签收
// distributionAsyncService.getInventorySelfPickup(inventoryAppVO.getStockArticleId());
//
// distributionBillLadingScan.setPacketBarCode((String) coding);
// distributionBillLadingScan.setStockListId(inventoryAppVO.getStockListId());
// distributionBillLadingScan.setQuantity(1);
// distributionBillLadingScanService.save(distributionBillLadingScan);
} else {
return Resp.scanFail("包件信息不存在", "包件信息不存在");
}

2
blade-service/logpm-factory-data/logpm-factory-data-zbom/src/main/java/com/logpm/factorydata/zbom/mapper/OrderPackageMapper.xml

@ -47,7 +47,7 @@
from zb_order_package tt
where exists(
select 1 from (
<foreach collection="packageList" index="ind" item="item">
<foreach collection="packageCodeList" index="ind" item="item">
<if test="ind == 0">
select #{item} pid
</if>

6
blade-service/logpm-factory-data/logpm-factory-data-zbom/src/main/java/com/logpm/factorydata/zbom/mq/ZbomFactoryOrderListener.java

@ -213,9 +213,9 @@ public class ZbomFactoryOrderListener {
advanceEntity.setStoreCode(orderPackageDTO.getCustomerCode());
advanceEntity.setStoreName(orderPackageDTO.getCustomerName());
advanceEntity.setServiceNum(orderPackageDTO.getRelationOrderCode());
advanceEntity.setConsigneePerson(orderPackageDTO.getReceiverName());
advanceEntity.setConsigneeMobile(orderPackageDTO.getReceiverMobile());
advanceEntity.setConsigneeAddress(orderPackageDTO.getReceiverAddress());
advanceEntity.setCustomerName(orderPackageDTO.getReceiverName());
advanceEntity.setCustomerPhone(orderPackageDTO.getReceiverMobile());
advanceEntity.setCustomerAddress(orderPackageDTO.getReceiverAddress());
// 封装包件
TrunklineAdvanceDetailEntity advanceDetailEntity = new TrunklineAdvanceDetailEntity();

18
blade-service/logpm-factory-data/logpm-factory-data-zbom/src/main/java/com/logpm/factorydata/zbom/mq/ZbomNodeDataPushListener.java

@ -77,6 +77,7 @@ public class ZbomNodeDataPushListener {
}
}
}
// 构建参数对象
List<NodeConfirmParamDTO> nodeConfirmParams = initParam(msgEntries, packageCodeList);
try {
@ -107,8 +108,12 @@ public class ZbomNodeDataPushListener {
.build();
// 推送成功
nodePushService.save(pushEntity);
// 修改订单包件表的签收状态
orderPackageService.updateSignForStatus(packageCodeList);
String node = msgEntries.getStr("node");
NodeEnums nodeEnums = EnumUtil.fromString(NodeEnums.class, node);
if (ObjectUtil.equal(nodeEnums, NodeEnums.CLERK_REVIEW)) {
// 修改订单包件表的签收状态
orderPackageService.updateSignForStatus(packageCodeList);
}
}
}
}
@ -132,6 +137,7 @@ public class ZbomNodeDataPushListener {
List<NodeConfirmParamDTO> orders = orderPackageService.findOrderCodebypackageCodes(packageCodeList);
// 根据运单号和自编码分组查询出未签收的数量
List<NoSignNumberDTO> noSignNumberDTOS = orderPackageService.findNoSignNumber(packageCodeList);
log.info("未签收数据:{}", JSONUtil.toJsonStr(noSignNumberDTOS));
Map<String, Integer> noSignNumberMap = new HashMap<>();
if (CollUtil.isNotEmpty(noSignNumberDTOS)) {
for (NoSignNumberDTO noSignNumberDTO : noSignNumberDTOS) {
@ -145,20 +151,24 @@ public class ZbomNodeDataPushListener {
order.setAddress(entries.getStr("address"));
// 如果是签收节点,需要判断是否为全部签收和部分签收
if (EnumUtil.equals(NodeEnums.CLERK_REVIEW, node)) {
Integer signNumber = Convert.toInt(order.getRejectQty());
log.info("key:{},签收数量:{}", order.getDepartCode() + "_" + order.getPlatformOrderCode(), order.getSignQty());
Integer signNumber = Convert.toInt(order.getSignQty());
// 查询当前未签收的数量与当前签收数量比较,如果未签收数较大,则是部分签收
String key = order.getDepartCode() + order.getPlatformOrderCode();
// 部分签收
order.setNode(ZbomNodeMappingEnums.getZbomByNodeAndStatus(nodeEnums, ZbomConstants.Status.SIGN_FOR_SECTION_STATUS).getCode());
if (noSignNumberMap.containsKey(key)) {
if (ObjectUtil.isNotEmpty(noSignNumberMap) && noSignNumberMap.containsKey(key)) {
Integer noSignNum = noSignNumberMap.get(key);
if (noSignNum <= signNumber) {
// 全部签收
order.setNode(ZbomNodeMappingEnums.getZbomByNodeAndStatus(nodeEnums, ZbomConstants.Status.SIGN_FOR_ALL_STATUS).getCode());
}
} else {
continue;
}
} else {
order.setRejectQty("");
order.setSignQty("");
order.setNode(ZbomNodeMappingEnums.getZbomByNodeAndStatus(nodeEnums).getCode());
}
}

12
blade-service/logpm-factory-data/logpm-factory-data-zbom/src/main/java/com/logpm/factorydata/zbom/util/ZbomUtil.java

@ -3,7 +3,9 @@ package com.logpm.factorydata.zbom.util;
import cn.hutool.core.map.MapUtil;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONUtil;
import com.logpm.factorydata.zbom.pros.ZbFactoryProperties;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.HttpConstants;
import org.springblade.common.utils.CommonUtil;
@ -18,19 +20,22 @@ import java.util.Map;
* @author zhaoqiaobo
* @create 2024-03-21 15:23
*/
@Slf4j
public class ZbomUtil {
/**
* 推送数据
*
* @param zbProperties 志邦配置信息
* @param body 请求提
* @param method 请求方法
* @param body 请求提
* @param method 请求方法
* @return 返回请求结果
* @throws Exception
*/
public static String pushZbomSystem(ZbFactoryProperties zbProperties, String body, String method) throws Exception {
// 构建请求url
String url = ZbomUtil.buildUrl(zbProperties, body, method);
log.info("推送志邦url:{}", url);
// 请求数据
HashMap<String, String> headers = MapUtil.of(HttpConstants.HTTP.HEADER_NAME.CONTENT_TYPE, HttpConstants.HTTP.HEADER_VALUE.JSON);
HttpResponse execute = HttpUtil.createPost(url).headerMap(headers, false).body(body).timeout(5 * 1000).execute();
@ -47,8 +52,11 @@ public class ZbomUtil {
params.put("sign_method", "md5");
params.put("timestamp", CommonUtil.dateToStringGeneral(new Date()));
params.put("v", "1.0");
log.info("推送志邦参数:{}", JSONUtil.toJsonStr(params));
String body = bodyParam.replaceAll("\\s+", "");
log.info("推送志邦请求体:{}", body);
String sign = QmSignUntil.signTopRequest(params, zbProperties.getSecretkey(), "md5", body);
log.info("推送志邦签名:{}", sign);
String url = getZbUrl(zbProperties.getUrl() + "/api/edi/ots/in?", params, sign);
return url;
}

4
blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/SyncOrderInfoServiceImpl.java

@ -1643,7 +1643,11 @@ public class SyncOrderInfoServiceImpl implements ISyncOrderInfoService {
entity.setOrderPackageStatus(OrderPackageStatusConstant.yiruku.getValue());
if(!Objects.isNull(waybillEntity)){
String warehouseName = waybillEntity.getWarehouseName();//目的仓
Integer warehouseId1 = waybillEntity.getWarehouseId();
BasicdataWarehouseEntity endhouse = basicdataWarehouseClient.findByName(warehouseName);
if(Objects.isNull(endhouse)){
endhouse = basicdataWarehouseClient.getWarehouseByOldId(warehouseId1);
}
Long endWarehouseId = endhouse.getId();
if(endWarehouseId.equals(warehouseId)){
entity.setIsTransfer(0);

17
blade-service/logpm-report/pom.xml

@ -33,8 +33,21 @@
<artifactId>logpm-basicdata-api</artifactId>
<version>3.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springblade</groupId>
<artifactId>logpm-report-api</artifactId>
<version>3.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springblade</groupId>
<artifactId>blade-dict-api</artifactId>
<version>3.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springblade</groupId>
<artifactId>logpm-factory-data-api</artifactId>
<version>3.2.0.RELEASE</version>
</dependency>
</dependencies>
<build>

4
blade-service/logpm-report/src/main/java/com/logpm/report/controller/IndexCountController.java

@ -55,8 +55,8 @@ public class IndexCountController {
@GetMapping("/get_Delivery_data")
@ApiOperation(value = "配送数据",tags = "配送数据")
public R<DeliveryDetailDataVo> getDeliveryData() {
DeliveryDetailDataVo deliveryData = indexCountService.getDeliveryData();
public R<DeliveryDataVo> getDeliveryData() {
DeliveryDataVo deliveryData = indexCountService.getDeliveryData();
return R.data(deliveryData);
}

30
blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportBillLoadingController.java

@ -1,7 +1,12 @@
package com.logpm.report.controller;
import cn.hutool.core.util.EnumUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.logpm.factorydata.enums.BrandEnums;
import com.logpm.factorydata.enums.NodeEnums;
import com.logpm.factorydata.util.FactoryDataMessageSender;
import com.logpm.factorydata.vo.NodePushMsg;
import com.logpm.report.query.BillDetailsQuery;
import com.logpm.report.query.BillLoadingTasksQuery;
import com.logpm.report.service.IReportBillLoadingAsyncService;
@ -12,13 +17,19 @@ import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* 自提报表前端控制器
*
* @Author zqb
* @Date 2024/3/14
**/
@ -30,6 +41,25 @@ public class ReportBillLoadingController {
private IReportBillLoadingAsyncService reportBillLoadingAsyncService;
private final FactoryDataMessageSender sender;
@PostMapping("/sendMessage")
@ApiOperation(value = "发送消息测试", notes = "发送消息测试")
public R<String> tasksPage(@RequestBody Map map) {
String node = (String) map.get("node");
NodeEnums nodeEnums = EnumUtil.fromString(NodeEnums.class, node);
NodePushMsg build = NodePushMsg.builder()
.node(nodeEnums)
.brand(BrandEnums.ZB)
.operatorTime(new Date())
.operator("test")
.address("test")
.content((List<Object>) map.get("content"))
.build();
sender.sendNodeDataByBrand(build);
return R.data("成功");
}
@GetMapping("/tasks")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "自提任务维度", notes = "自提任务维度")

27
blade-service/logpm-report/src/main/java/com/logpm/report/mapper/InLibraryDeliverMapper.java

@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@Mapper
@ -78,6 +81,30 @@ public interface InLibraryDeliverMapper extends BaseMapper {
Integer getMainLineJob(@Param("warehouse") List<Long> warehouse);
Integer getMainLineEndCount(@Param("warehouse") List<Long> warehouse);
/*获取异常数据*/
Integer getAbnormalAll(@Param("warehouse") List<Long> warehouse, HashMap<String, Date> date);
Integer getAbnormalNotProcessed(@Param("warehouse") List<Long> warehouse, HashMap<String,Date> date);
BigDecimal getAbnormalApproximateRate(@Param("warehouse") List<Long> warehouse, HashMap<String,Date> date);
/*获取配送数据*/
Integer getDeliveryAll(@Param("warehouse") List<Long> warehouse,Integer type);
Integer getDeliveryAllCount(@Param("warehouse") List<Long> warehouse,Integer type);
Integer getDeliveryAllWeight(@Param("warehouse") List<Long> warehouse,Integer type);
Integer getDeliveryAllArea(@Param("warehouse") List<Long> warehouse,Integer type);
Integer getDeliveryOnTheWay(@Param("warehouse") List<Long> warehouse,Integer type);
/*获取签收数据*/
Integer getEndSign(@Param("warehouse") List<Long> warehouse, HashMap<String, Date> date);
Integer getNoSign(@Param("warehouse") List<Long> warehouse, HashMap<String, Date> date);
BigDecimal getApproximateRate(@Param("warehouse") List<Long> warehouse, HashMap<String, Date> date);
Integer getJobApproximateRate(@Param("warehouse") List<Long> warehouse, HashMap<String, Date> date);
Integer getJobNoSign(@Param("warehouse") List<Long> warehouse, HashMap<String, Date> date);
Integer getTimeEndSign(@Param("warehouse") List<Long> warehouse, HashMap<String, Date> date);
Integer getTimeApproximateRate(@Param("warehouse") List<Long> warehouse, HashMap<String, Date> date);
}

24
blade-service/logpm-report/src/main/java/com/logpm/report/mapper/InLibraryDeliverMapper.xml

@ -153,4 +153,28 @@
<select id="getMainLineJob" resultType="java.lang.Integer"></select>
<select id="getMainLineEndCount" resultType="java.lang.Integer"></select>
<!--异常数据-->
<select id="getAbnormalAll" resultType="java.lang.Integer"></select>
<select id="getAbnormalNotProcessed" resultType="java.lang.Integer"></select>
<select id="getAbnormalApproximateRate" resultType="java.math.BigDecimal"></select>
<!--配送数据-->
<select id="getDeliveryAll" resultType="java.lang.Integer"></select>
<select id="getDeliveryAllCount" resultType="java.lang.Integer"></select>
<select id="getDeliveryAllWeight" resultType="java.lang.Integer"></select>
<select id="getDeliveryAllArea" resultType="java.lang.Integer"></select>
<select id="getDeliveryOnTheWay" resultType="java.lang.Integer"></select>
<!--获取签收数据-->
<select id="getEndSign" resultType="java.lang.Integer"></select>
<select id="getNoSign" resultType="java.lang.Integer"></select>
<select id="getApproximateRate" resultType="java.math.BigDecimal"></select>
<select id="getJobApproximateRate" resultType="java.lang.Integer"></select>
<select id="getJobNoSign" resultType="java.lang.Integer"></select>
<select id="getTimeEndSign" resultType="java.lang.Integer"></select>
<select id="getTimeApproximateRate" resultType="java.lang.Integer"></select>
</mapper>

33
blade-service/logpm-report/src/main/java/com/logpm/report/service/InLibraryDeliverService.java

@ -4,6 +4,9 @@ package com.logpm.report.service;
import io.swagger.models.auth.In;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
/**
@ -70,4 +73,34 @@ public interface InLibraryDeliverService {
Integer getMainLineJob(@Param("warehouse") List<Long> warehouse);
Integer getMainLineEndCount(@Param("warehouse") List<Long> warehouse);
/*获取异常数据*/
Integer getAbnormalAll(@Param("warehouse") List<Long> warehouse, HashMap<String, Date> date);
Integer getAbnormalNotProcessed(@Param("warehouse") List<Long> warehouse, HashMap<String,Date> date);
BigDecimal getAbnormalApproximateRate(@Param("warehouse") List<Long> warehouse, HashMap<String,Date> date);
/*获取配送数据*/
Integer getDeliveryAll(@Param("warehouse") List<Long> warehouse,Integer type);
Integer getDeliveryAllCount(@Param("warehouse") List<Long> warehouse,Integer type);
Integer getDeliveryAllWeight(@Param("warehouse") List<Long> warehouse,Integer type);
Integer getDeliveryAllArea(@Param("warehouse") List<Long> warehouse,Integer type);
Integer getDeliveryOnTheWay(@Param("warehouse") List<Long> warehouse,Integer type);
/*获取签收数据*/
Integer getEndSign(@Param("warehouse") List<Long> warehouse, HashMap<String, Date> date);
Integer getNoSign(@Param("warehouse") List<Long> warehouse, HashMap<String, Date> date);
BigDecimal getApproximateRate(@Param("warehouse") List<Long> warehouse, HashMap<String, Date> date);
Integer getJobApproximateRate(@Param("warehouse") List<Long> warehouse, HashMap<String, Date> date);
Integer getJobNoSign(@Param("warehouse") List<Long> warehouse, HashMap<String, Date> date);
Integer getTimeEndSign(@Param("warehouse") List<Long> warehouse, HashMap<String, Date> date);
Integer getTimeApproximateRate(@Param("warehouse") List<Long> warehouse, HashMap<String, Date> date);
}

2
blade-service/logpm-report/src/main/java/com/logpm/report/service/IndexCountService.java

@ -38,7 +38,7 @@ public interface IndexCountService {
* 获取配送数据
* @return
*/
DeliveryDetailDataVo getDeliveryData();
DeliveryDataVo getDeliveryData();
/**
* 获取签收数据

87
blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/InLibraryDeliverServiceImpl.java

@ -7,6 +7,9 @@ import io.swagger.models.auth.In;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@Service
@ -130,5 +133,89 @@ public class InLibraryDeliverServiceImpl implements InLibraryDeliverService {
return inLibraryDeliverMapper.getMainLineStreet(warehouse);
}
/*异常数据*/
@Override
public Integer getAbnormalAll(List<Long> warehouse, HashMap<String, Date> date) {
return null;
}
@Override
public Integer getAbnormalNotProcessed(List<Long> warehouse, HashMap<String,Date> date) {
return null;
}
@Override
public BigDecimal getAbnormalApproximateRate(List<Long> warehouse, HashMap<String,Date> date) {
return null;
}
/*配送数据*/
@Override
public Integer getDeliveryAll(List<Long> warehouse, Integer type) {
return null;
}
@Override
public Integer getDeliveryAllCount(List<Long> warehouse, Integer type) {
return null;
}
@Override
public Integer getDeliveryAllWeight(List<Long> warehouse, Integer type) {
return null;
}
@Override
public Integer getDeliveryAllArea(List<Long> warehouse, Integer type) {
return null;
}
@Override
public Integer getDeliveryOnTheWay(List<Long> warehouse, Integer type) {
return null;
}
/*签收数据*/
@Override
public Integer getEndSign(List<Long> warehouse, HashMap<String, Date> date) {
return null;
}
@Override
public Integer getNoSign(List<Long> warehouse, HashMap<String, Date> date) {
return null;
}
@Override
public BigDecimal getApproximateRate(List<Long> warehouse, HashMap<String, Date> date) {
return null;
}
@Override
public Integer getJobApproximateRate(List<Long> warehouse, HashMap<String, Date> date) {
return null;
}
@Override
public Integer getJobNoSign(List<Long> warehouse, HashMap<String, Date> date) {
return null;
}
@Override
public Integer getTimeEndSign(List<Long> warehouse, HashMap<String, Date> date) {
return null;
}
@Override
public Integer getTimeApproximateRate(List<Long> warehouse, HashMap<String, Date> date) {
return null;
}
}

56
blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/IndexCountServiceImpl.java

@ -6,6 +6,8 @@ import com.logpm.report.service.IndexCountService;
import com.logpm.report.vo.IndexCountVO;
import com.logpm.report.vo.indexCount.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import org.checkerframework.checker.units.qual.A;
import org.springblade.common.constant.aftersales.WorkOrderStatusConstant;
import org.springblade.common.constant.orderpackage.OrderPackageStatusConstant;
import org.springblade.common.constant.stockup.StockupTypeConstant;
@ -90,16 +92,44 @@ public class IndexCountServiceImpl implements IndexCountService {
*/
@Override
public AbnormalDataVo getAbnormalData() {
return null;
AbnormalDataVo abnormalDataVo = new AbnormalDataVo();
abnormalDataVo.setMoon(getAbnormalDataDetail("2"));
abnormalDataVo.setDay(getAbnormalDataDetail("3"));
return abnormalDataVo;
}
public AbnormalDetailDataVo getAbnormalDataDetail(String type){
AbnormalDetailDataVo abnormalDetailDataVo = new AbnormalDetailDataVo();
List<Long> warehouse = billingService.getWarehouse();
abnormalDetailDataVo.setAll(inLibraryDeliverService.getAbnormalAll(warehouse,billingService.getOtherTime(type)));
abnormalDetailDataVo.setNotProcessed(inLibraryDeliverService.getAbnormalNotProcessed(warehouse,billingService.getOtherTime(type)));
abnormalDetailDataVo.setApproximateRate(inLibraryDeliverService.getAbnormalApproximateRate(warehouse,billingService.getOtherTime(type)));
return abnormalDetailDataVo;
}
/**
* 获取配送数据
* 获取配送数据 type 1 市配 2商配
* @return
*/
@Override
public DeliveryDetailDataVo getDeliveryData() {
return null;
public DeliveryDataVo getDeliveryData() {
DeliveryDataVo deliveryDataVo = new DeliveryDataVo();
deliveryDataVo.setCity(getDeliveryData(1));
deliveryDataVo.setShopp(getDeliveryData(2));
return deliveryDataVo;
}
public DeliveryDetailDataVo getDeliveryData(Integer type){
DeliveryDetailDataVo deliveryDetailDataVo = new DeliveryDetailDataVo();
List<Long> warehouse = billingService.getWarehouse();
deliveryDetailDataVo.setAll(inLibraryDeliverService.getDeliveryAll(warehouse,type));
deliveryDetailDataVo.setAllCount(inLibraryDeliverService.getDeliveryAllCount(warehouse,type));
deliveryDetailDataVo.setAllWeight(inLibraryDeliverService.getDeliveryAllWeight(warehouse,type));
deliveryDetailDataVo.setAllArea(inLibraryDeliverService.getDeliveryAllArea(warehouse,type));
deliveryDetailDataVo.setOnTheWay(inLibraryDeliverService.getDeliveryOnTheWay(warehouse,type));
return deliveryDetailDataVo;
}
/**
@ -108,7 +138,23 @@ public class IndexCountServiceImpl implements IndexCountService {
*/
@Override
public SignDataVo getSignData() {
return null;
SignDataVo signDataVo = new SignDataVo();
signDataVo.setMoon(signDataDetail("2"));
signDataVo.setMoon(signDataDetail("3"));
return signDataVo;
}
public SignDetailDataVo signDataDetail(String type){
SignDetailDataVo signDetailDataVo = new SignDetailDataVo();
List<Long> warehouse = billingService.getWarehouse();
signDetailDataVo.setEndSign(inLibraryDeliverService.getEndSign(warehouse,billingService.getOtherTime(type)));
signDetailDataVo.setNoSign(inLibraryDeliverService.getNoSign(warehouse,billingService.getOtherTime(type)));
signDetailDataVo.setTimeEndSign(inLibraryDeliverService.getTimeEndSign(warehouse,billingService.getOtherTime(type)));
signDetailDataVo.setJobNoSign(inLibraryDeliverService.getJobNoSign(warehouse,billingService.getOtherTime(type)));
signDetailDataVo.setJobApproximateRate(inLibraryDeliverService.getJobApproximateRate(warehouse,billingService.getOtherTime(type)));
signDetailDataVo.setTimeApproximateRate(inLibraryDeliverService.getTimeApproximateRate(warehouse,billingService.getOtherTime(type)));
signDetailDataVo.setApproximateRate(inLibraryDeliverService.getApproximateRate(warehouse,billingService.getOtherTime(type)));
return signDetailDataVo;
}
/**

6
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceDetailMapper.xml

@ -42,18 +42,20 @@
</select>
<select id="findGoodsListByAdvanceIds" resultType="com.logpm.trunkline.vo.AdvanceDetailGoodsVO">
select ltad.first_pack_name goodsName,
select IFNULL(lbc.name,'其他') goodsName,
ltad.charge_type chargeType,
sum(ltad.quantity) num,
sum(ltad.weight) weight,
sum(ltad.volume) volume
from logpm_trunkline_advance_detail ltad
left join logpm_basicdata_factory_category lbfc on lbfc.brand = ltad.brand and lbfc.firsts = ltad.first_pack_name and lbfc.seconds = ltad.second_pack_name and lbfc.thirds = ltad.third_pack_name
left join logpm_basicdata_category lbc on lbc.id = lbfc.category_id
where ltad.is_deleted = 0
and ltad.advance_id in
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item}
</foreach>
group by ltad.first_pack_name,
group by IFNULL(lbc.name,'其他'),
ltad.charge_type
</select>

5
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceMapper.xml

@ -146,7 +146,10 @@
and lta.train_number = #{param.incomingCode}
</if>
<if test="param.incomingType == 5" >
and lta.order_code = #{param.incomingCode}
and lta.order_code in
<foreach collection="param.orderCodes" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</select>

103
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/InComingServiceImpl.java

@ -19,10 +19,7 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.*;
@Slf4j
@Service
@ -61,52 +58,84 @@ public class InComingServiceImpl implements IInComingService {
String packageStatus = advanceDetailEntity.getPackageStatus();
Long advanceId = advanceDetailEntity.getAdvanceId();
if("1".equals(packageStatus)){
log.warn("############incomingPackage: 包件已入库 packageCode={} warehouseId={}",packageCode,warehouseId);
return Resp.scanFail(405,"包件已入库","包件已入库");
}
if(incomingType != 1){
log.warn("############incomingPackage: 包件已入库 packageCode={} warehouseId={}",packageCode,warehouseId);
return Resp.scanFail(405,"包件已入库","包件已入库");
}else{
if(!Objects.isNull(billladingId)){
//先判断该包件是否已经有提货记录了
TrunklineBillladingPackageEntity billladingPackageEntity = billladingPackageServicie.findBillladingPackage(packageCode);
if(Objects.isNull(billladingPackageEntity)){
billladingPackageServicie.saveEntity(packageCode,billladingId,warehouseId,incomingType);
}
}
if(StringUtil.isBlank(warehouseName)){
BasicdataWarehouseEntity warehouseEntity = warehouseClient.getEntityWarehouseId(warehouseId);
if(!Objects.isNull(warehouseEntity)){
warehouseName = warehouseEntity.getName();
//4.如果有托盘码
if(StringUtil.isNotBlank(trayCode) && StringUtil.isNotBlank(trayType)){
Map<String,Object> map = new HashMap<>();
map.put("trayType",trayType);
map.put("trayCode",trayCode);
map.put("warehouseId",warehouseId);
map.put("orderPackageCode",packageCode);
warehouseTrayTypeClient.orderScanOrderPackageCode(map);
}
}
}
//1.修改暂存单包件入库状态
advanceDetailService.updatePackageStatusById("1",advanceDetailId,warehouseId,warehouseName);
List<String> incomingWarehouseNames = advanceDetailService.findIncomingWarehouseName(advanceId);
advanceService.updateIncomingWarehouseName(String.join(",",incomingWarehouseNames),advanceId);
//2.判断包件和订单是否已经存入在库订单
boolean b = advanceService.saveOrderAndPackage(advanceDetailEntity, warehouseId);
if(b){
//3.根据是否有提货单id绑定提货单
if(!Objects.isNull(billladingId)){
//先判断该包件是否已经有提货记录了
TrunklineBillladingPackageEntity billladingPackageEntity = billladingPackageServicie.findBillladingPackage(packageCode);
if(Objects.isNull(billladingPackageEntity)){
billladingPackageServicie.saveEntity(packageCode,billladingId,warehouseId,incomingType);
}else{
if(StringUtil.isBlank(warehouseName)){
BasicdataWarehouseEntity warehouseEntity = warehouseClient.getEntityWarehouseId(warehouseId);
if(!Objects.isNull(warehouseEntity)){
warehouseName = warehouseEntity.getName();
}
}
//4.如果有托盘码
if(StringUtil.isNotBlank(trayCode) && StringUtil.isNotBlank(trayType)){
Map<String,Object> map = new HashMap<>();
map.put("trayType",trayType);
map.put("trayCode",trayCode);
map.put("warehouseId",warehouseId);
map.put("orderPackageCode",packageCode);
warehouseTrayTypeClient.orderScanOrderPackageCode(map);
//1.修改暂存单包件入库状态
advanceDetailService.updatePackageStatusById("1",advanceDetailId,warehouseId,warehouseName);
List<String> incomingWarehouseNames = advanceDetailService.findIncomingWarehouseName(advanceId);
advanceService.updateIncomingWarehouseName(String.join(",",incomingWarehouseNames),advanceId);
//2.判断包件和订单是否已经存入在库订单
boolean b = advanceService.saveOrderAndPackage(advanceDetailEntity, warehouseId);
if(b){
//3.根据是否有提货单id绑定提货单
if(!Objects.isNull(billladingId)){
//先判断该包件是否已经有提货记录了
TrunklineBillladingPackageEntity billladingPackageEntity = billladingPackageServicie.findBillladingPackage(packageCode);
if(Objects.isNull(billladingPackageEntity)){
billladingPackageServicie.saveEntity(packageCode,billladingId,warehouseId,incomingType);
}
}
//4.如果有托盘码
if(StringUtil.isNotBlank(trayCode) && StringUtil.isNotBlank(trayType)){
Map<String,Object> map = new HashMap<>();
map.put("trayType",trayType);
map.put("trayCode",trayCode);
map.put("warehouseId",warehouseId);
map.put("orderPackageCode",packageCode);
warehouseTrayTypeClient.orderScanOrderPackageCode(map);
}
}
}
}
return R.success("入库成功");
}
@Override
public R findIncomingOrderList(InComingDTO inComingDTO) {
Integer incomingType = inComingDTO.getIncomingType();
if(incomingType == 5){
String incomingCode = inComingDTO.getIncomingCode();
incomingCode = incomingCode.replaceAll(",",",");
List<String> orderCodes = new ArrayList<>();
if(incomingCode.contains(",")){
orderCodes.addAll(Arrays.asList(incomingCode.split(",")));
}else{
orderCodes.add(incomingCode);
}
inComingDTO.setOrderCodes(orderCodes);
}
List<TrunklineAdvanceVO> ls = advanceService.findIncomingOrderList(inComingDTO);
for (TrunklineAdvanceVO advanceVO : ls) {
Long advanceId = advanceVO.getId();

13
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java

@ -1208,6 +1208,12 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
log.warn("###############updateCarsLoadBasicData: 配载计划不存在 loadId={}", loadId);
return R.fail(405, "配载计划不存在");
}
TrunklineCarsLoadLineEntity currentLoadLineEntity = trunklineCarsLoadLineService.findEntityByLoadIdAndNodeId(loadId, warehouseId);
if(Objects.isNull(currentLoadLineEntity)){
log.warn("###############updateCarsLoadBasicData: 配载计划节点不存在 loadId={} nodeId={}", loadId,warehouseId);
return R.fail(405, "配载计划节点不存在");
}
carsLoadEntity.setDriverId(driverId);
carsLoadEntity.setAssistantId(assistantId);
carsLoadEntity.setAssistantName(assistantName);
@ -1317,6 +1323,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
trunklineCarsOrderEntity.setId(null);
trunklineCarsOrderEntity.setLoadId(loadId);
trunklineCarsOrderEntity.setLoadLineId(carsLoadLineId);
trunklineCarsOrderEntity.setNodeId(warehouseId);
trunklineCarsOrderEntity.setNodeName(currentLoadLineEntity.getNodeName());
trunklineCarsOrderEntity.setRealNum(0);
trunklineCarsOrderEntity.setStartNum(trunklineCarsOrderDTO.getPlanNum());
trunklineCarsOrderService.save(trunklineCarsOrderEntity);
@ -3732,13 +3740,14 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
List<TrunklineCarsOrderEntity> carsOrderEntityList = trunklineCarsOrderService.findListByLoadIdAndNodeId(loadId, warehouseId);
for (TrunklineCarsOrderEntity carsOrderEntity : carsOrderEntityList) {
Integer type = carsOrderEntity.getType();
Integer realNum = carsOrderEntity.getRealNum();
if (type.equals(1)) {
//订制品订单
String orderCode = carsOrderEntity.getOrderCode();
Integer planNum = carsOrderEntity.getPlanNum();
List<DistributionParcelListEntity> entityListByOrderCode = distributionParcelListClient.findEntityListByOrderCodeAndStatus(orderCode, warehouseId, "20");
int size = entityListByOrderCode.size();
if (planNum.equals(size)) {
if (planNum.equals(size+realNum)) {
for (DistributionParcelListEntity parcelListEntity : entityListByOrderCode) {
String orderPackageCode = parcelListEntity.getOrderPackageCode();
//查询包件是否已经装车
@ -3753,7 +3762,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
String orderCode = carsOrderEntity.getOrderCode();
String waybillNo = carsOrderEntity.getWaybillNo();
Integer planNum = carsOrderEntity.getPlanNum();
Integer realNum = carsOrderEntity.getRealNum();
// Integer realNum = carsOrderEntity.getRealNum();
if (realNum.equals(0)) {
loadingZero(loadId, warehouseId, waybillNo, orderCode, null, planNum, "手动一键装车");
}

Loading…
Cancel
Save