Browse Source

1.干线部分提交

training
zhenghaoyu 1 year ago
parent
commit
a0baa36b72
  1. 1
      blade-biz-common/src/main/java/org/springblade/common/constant/CodeNumConstant.java
  2. 5
      blade-biz-common/src/main/java/org/springblade/common/constant/DictBizConstant.java
  3. 9
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/BillladingDTO.java
  4. 16
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineBillladingEntity.java
  5. 6
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineBillladingLineEntity.java
  6. 9
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineBillladingWaybillEntity.java
  7. 2
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineBillladingLineVO.java
  8. 29
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataCodeServiceImpl.java
  9. 131
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/BillladingController.java
  10. 1
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineBillladingService.java
  11. 78
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineBillladingServiceImpl.java

1
blade-biz-common/src/main/java/org/springblade/common/constant/CodeNumConstant.java

@ -12,5 +12,6 @@ public class CodeNumConstant {
public final static int SHELF = 8;//货架号
public final static int PSKH = 9;//配送客户号
public final static int ABNORMAL_ORDER = 10;//异常工单号
public final static int TRUNKLINEBILLLADING = 11;//干线提货单号
}

5
blade-biz-common/src/main/java/org/springblade/common/constant/DictBizConstant.java

@ -106,4 +106,9 @@ public class DictBizConstant {
public static final String WAREHOUSE_QUEST_STATUS = "warehouse_quest_status"; //盘点任务
// --------------2023-11-04 ---------------------
public static final String WAREHOUSE_RETENTION_TYPE = "warehouse_retention_type"; //滞留类型
//---------------2023-11-07---------------------
public static final String BILLLADING_CHARGE_TYPE = "billlading_charge_type"; //提货单计费方式
}

9
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/BillladingDTO.java

@ -1,12 +1,21 @@
package com.logpm.trunkline.dto;
import com.logpm.trunkline.entity.TrunklineBillladingEntity;
import com.logpm.trunkline.vo.TrunklineBillladingLineVO;
import com.logpm.trunkline.vo.TrunklineBillladingWaybillVO;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class BillladingDTO extends TrunklineBillladingEntity {
private Integer pageNum;
private Integer pageSize;
private List<TrunklineBillladingLineVO> billladingLineList = new ArrayList<>();
private List<TrunklineBillladingWaybillVO> billladingWaybillList = new ArrayList<>();
}

16
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineBillladingEntity.java

@ -7,6 +7,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.math.BigDecimal;
import java.util.Date;
@Data
@ -62,28 +63,28 @@ public class TrunklineBillladingEntity extends TenantEntity {
private String lineNameTitle ;
/** 预计件数 */
@ApiModelProperty(name = "预计件数",notes = "")
private int planNum ;
private Integer planNum ;
/** 预计重量 */
@ApiModelProperty(name = "预计重量",notes = "")
private Double planWeight ;
private BigDecimal planWeight ;
/** 预计体积 */
@ApiModelProperty(name = "预计体积",notes = "")
private Double planVolume ;
private BigDecimal planVolume ;
/** 实际件数 */
@ApiModelProperty(name = "实际件数",notes = "")
private int realNum ;
/** 实际重量 */
@ApiModelProperty(name = "实际重量",notes = "")
private Double realWeight ;
private BigDecimal realWeight ;
/** 实际体积 */
@ApiModelProperty(name = "实际体积",notes = "")
private Double realVolume ;
private BigDecimal realVolume ;
/** 计费模式 1按件 2按重量 3按体积 */
@ApiModelProperty(name = "计费模式 1按件 2按重量 3按体积",notes = "")
private String chargeType ;
/** 提货费用 */
@ApiModelProperty(name = "提货费用",notes = "")
private Double totalFee ;
private BigDecimal totalFee ;
/** 提货单状态 1=未开始,2=提货中,3=已完成,4=已取消 */
@ApiModelProperty(name = "提货单状态 1=未开始,2=提货中,3=已完成,4=已取消",notes = "")
private String billladingStatus ;
@ -102,5 +103,8 @@ public class TrunklineBillladingEntity extends TenantEntity {
/** 结算人名称 */
@ApiModelProperty(name = "结算人名称",notes = "")
private String settlementName ;
/** 创建人名称 */
@ApiModelProperty(name = "创建人名称",notes = "")
private String createUserName ;
}

6
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineBillladingLineEntity.java

@ -37,6 +37,12 @@ public class TrunklineBillladingLineEntity extends TenantEntity {
/** 提货单id */
@ApiModelProperty(name = "提货单id",notes = "")
private Long billladingId ;
/** 提货单id */
@ApiModelProperty(name = "客户id",notes = "")
private Long clientId ;
/** 客户名称 */
@ApiModelProperty(name = "客户名称",notes = "")
private String clientName ;
/** 客户类型 1 工厂 2 商场 3装饰 4个人 */
@ApiModelProperty(name = "客户类型 1 工厂 2 商场 3装饰 4个人",notes = "")
private String clientType ;

9
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineBillladingWaybillEntity.java

@ -7,6 +7,8 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.math.BigDecimal;
@Data
@TableName("logpm_trunkline_billlading_waybill")
@ApiModel(value = "TrunklineBillladingWaybill对象", description = "提货运单关联表")
@ -28,6 +30,9 @@ public class TrunklineBillladingWaybillEntity extends TenantEntity {
/** 仓库id */
@ApiModelProperty(name = "仓库id",notes = "")
private Long warehouseId ;
/** 仓库名称 */
@ApiModelProperty(name = "仓库名称",notes = "")
private Long warehouseName ;
/** 提货单id */
@ApiModelProperty(name = "提货单id",notes = "")
private Long billladingId ;
@ -42,10 +47,10 @@ public class TrunklineBillladingWaybillEntity extends TenantEntity {
private Integer realNum ;
/** 提货重量 */
@ApiModelProperty(name = "提货重量",notes = "")
private Double realWeight ;
private BigDecimal realWeight ;
/** 提货体积 */
@ApiModelProperty(name = "提货体积",notes = "")
private Double realVolume ;
private BigDecimal realVolume ;
}

2
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineBillladingLineVO.java

@ -8,4 +8,6 @@ public class TrunklineBillladingLineVO extends TrunklineBillladingLineEntity {
}

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

@ -72,12 +72,41 @@ public class BasicdataCodeServiceImpl implements IBasicdataCodeService {
case CodeNumConstant.ABNORMAL_ORDER:
code = generateExOrderCode(type,warehouseCode,orderCode);
break;
case CodeNumConstant.TRUNKLINEBILLLADING:
code = generateTrunklineBillladingCode(type,warehouseCode,orderCode);
break;
default:
log.info("##################getCodeByType: 暂不支持的编码类型 type={}", CodeDesEnum.getMes(type));
}
return code;
}
private String generateTrunklineBillladingCode(Integer type, String warehouseCode, String orderCode) {
if(!StringUtil.hasLength(warehouseCode)){
log.warn("############generateTrunklineBillladingCode: 仓库编码为空warehouseCode={}",warehouseCode);
return null;
}
//获得年月日短字符串
String dateShort = CommonUtil.dateToStringShort(new Date());
String key = warehouseCode+"TH"+":"+dateShort;
//获得序号
Boolean exists = bladeRedis.exists(key);
Long incr = null;
if(exists){
incr = bladeRedis.incr(key);
}else{
String value = dateShort+"00001";
incr = Long.parseLong(value);
bladeRedis.set(key,incr);
bladeRedis.expireAt(key,CommonUtil.getMonthDayEnd());
}
return warehouseCode+"TH"+incr;
}
private String generateExOrderCode(Integer type, String warehouseCode, String orderCode) {
if(!StringUtil.hasLength(warehouseCode)){
log.warn("############generateTraysCode: 仓库编码为空warehouseCode={}",warehouseCode);

131
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/BillladingController.java

@ -11,10 +11,16 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.DictBizConstant;
import org.springblade.common.exception.CustomerException;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.StringUtil;
import org.springblade.system.cache.DictBizCache;
import org.springblade.system.entity.DictBiz;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.util.List;
import java.util.Objects;
@Slf4j
@ -57,5 +63,130 @@ public class BillladingController {
}
}
@ResponseBody
@PostMapping("/findChargeTypeList")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "查询所有计费方式", notes = "传入waybillDTO")
public R findChargeTypeList(@RequestBody BillladingDTO billladingDTO) {
String method = "############findChargeTypeList: ";
log.info(method + "请求参数{}", billladingDTO);
try{
List<DictBiz> list = DictBizCache.getList(DictBizConstant.BILLLADING_CHARGE_TYPE);
return R.data(list);
}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("/saveNew")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "新增提货单", notes = "传入waybillDTO")
public R saveNew(@RequestBody BillladingDTO billladingDTO) {
String method = "############saveNew: ";
log.info(method + "请求参数{}", billladingDTO);
Long driverId = billladingDTO.getDriverId();
String driverName = billladingDTO.getDriverName();
String driverPhone = billladingDTO.getDriverPhone();
String carNumber = billladingDTO.getCarNumber();
String carrierName = billladingDTO.getCarrierName();
String chargeType = billladingDTO.getChargeType();
Integer planNum = billladingDTO.getPlanNum();
BigDecimal planWeight = billladingDTO.getPlanWeight();
BigDecimal planVolume = billladingDTO.getPlanVolume();
try{
//当前登录人选择的仓库
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
if(Objects.isNull(myCurrentWarehouse)){
log.warn(method+"仓库信息为空 myCurrentWarehouse={}",myCurrentWarehouse);
return R.fail(403,"仓库信息为空");
}
billladingDTO.setWarehouseId(myCurrentWarehouse.getId());
billladingDTO.setWarehouseName(myCurrentWarehouse.getName());
if(Objects.isNull(driverId)){
log.warn(method+"司机id不能为空 driverId={}",driverId);
return R.fail(405,"司机id不能为空");
}
if(StringUtil.isBlank(driverName)){
log.warn(method+"司机名称不能为空 driverName={}",driverName);
return R.fail(405,"司机名称不能为空");
}
if(StringUtil.isBlank(driverPhone)){
log.warn(method+"司机电话不能为空 driverPhone={}",driverPhone);
return R.fail(405,"司机电话不能为空");
}
if(StringUtil.isBlank(carNumber)){
log.warn(method+"车牌不能为空 carNumber={}",carNumber);
return R.fail(405,"车牌不能为空");
}
if(StringUtil.isBlank(carrierName)){
log.warn(method+"承运商不能为空 carrierName={}",carrierName);
return R.fail(405,"承运商不能为空");
}
if(StringUtil.isBlank(chargeType)){
log.warn(method+"计费模式不能为空 chargeType={}",chargeType);
return R.fail(405,"计费模式不能为空");
}
if(Objects.isNull(planNum)){
log.warn(method+"预计件数不能为空 planNum={}",planNum);
return R.fail(405,"预计件数不能为空");
}
if(Objects.isNull(planWeight)){
log.warn(method+"预计重量不能为空 planWeight={}",planWeight);
return R.fail(405,"预计重量不能为空");
}
if(Objects.isNull(planVolume)){
log.warn(method+"预计体积不能为空 planVolume={}",planVolume);
return R.fail(405,"预计体积不能为空");
}
trunklineBillladingService.saveNew(billladingDTO,myCurrentWarehouse.getCode());
return R.success("新增成功");
}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("/pageWaybillList")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "分页查询运单", notes = "传入waybillDTO")
public R pageWaybillList(@RequestBody BillladingDTO billladingDTO) {
String method = "############findChargeTypeList: ";
log.info(method + "请求参数{}", billladingDTO);
try{
//当前登录人选择的仓库
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
if(Objects.isNull(myCurrentWarehouse)){
log.warn(method+"仓库信息为空 myCurrentWarehouse={}",myCurrentWarehouse);
return R.fail(403,"仓库信息为空");
}
billladingDTO.setWarehouseId(myCurrentWarehouse.getId());
IPage<TrunklineBillladingVO> pages = trunklineBillladingService.pageList(billladingDTO);
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: 系统异常");
}
}
}

1
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineBillladingService.java

@ -10,4 +10,5 @@ public interface ITrunklineBillladingService extends BaseService<TrunklineBillla
IPage<TrunklineBillladingVO> pageList(BillladingDTO billladingDTO);
void saveNew(BillladingDTO billladingDTO,String warehouseCode);
}

78
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineBillladingServiceImpl.java

@ -2,21 +2,44 @@ package com.logpm.trunkline.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.logpm.basicdata.feign.IBasicdataCodeClient;
import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
import com.logpm.trunkline.dto.BillladingDTO;
import com.logpm.trunkline.entity.TrunklineBillladingEntity;
import com.logpm.trunkline.entity.TrunklineBillladingLineEntity;
import com.logpm.trunkline.entity.TrunklineBillladingWaybillEntity;
import com.logpm.trunkline.mapper.TrunklineBillladingMapper;
import com.logpm.trunkline.service.ITrunklineBillladingLineService;
import com.logpm.trunkline.service.ITrunklineBillladingService;
import com.logpm.trunkline.service.ITrunklineBillladingWaybillService;
import com.logpm.trunkline.vo.TrunklineBillladingLineVO;
import com.logpm.trunkline.vo.TrunklineBillladingVO;
import com.logpm.trunkline.vo.TrunklineBillladingWaybillVO;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
@Slf4j
@Service
@AllArgsConstructor
public class TrunklineBillladingServiceImpl extends BaseServiceImpl<TrunklineBillladingMapper, TrunklineBillladingEntity> implements ITrunklineBillladingService {
private final ITrunklineBillladingLineService billladingLineService;
private final ITrunklineBillladingWaybillService billladingWaybillService;
private final IBasicdataWarehouseClient basicdataWarehouseClient;
private final IBasicdataCodeClient basicdataCodeClient;
@Override
public IPage<TrunklineBillladingVO> pageList(BillladingDTO billladingDTO) {
IPage<Object> page = new Page<>();
@ -25,6 +48,59 @@ public class TrunklineBillladingServiceImpl extends BaseServiceImpl<TrunklineBil
IPage<TrunklineBillladingVO> pageList = baseMapper.pageList(page,billladingDTO);
return null;
return pageList;
}
@Override
public void saveNew(BillladingDTO billladingDTO,String warehouseCode) {
log.info("###############saveNew: billladingDTO={}",billladingDTO);
Long warehouseId = billladingDTO.getWarehouseId();
String warehouseName = billladingDTO.getWarehouseName();
String billladingCode = basicdataCodeClient.getCodeByType(11, warehouseCode, null);
TrunklineBillladingEntity trunklineBillladingEntity = new TrunklineBillladingEntity();
BeanUtil.copy(billladingDTO,trunklineBillladingEntity);
trunklineBillladingEntity.setBillladingStatus("1");
trunklineBillladingEntity.setCreateUserName(AuthUtil.getUserName());
trunklineBillladingEntity.setBillladingCode(billladingCode);
save(trunklineBillladingEntity);
Long billladingId = trunklineBillladingEntity.getId();
//保存线路节点
List<TrunklineBillladingLineVO> billladingLineList = billladingDTO.getBillladingLineList();
billladingLineList = billladingLineList.stream()
.sorted(Comparator.comparing(TrunklineBillladingLineVO::getSort))
.collect(Collectors.toList());
String lineTitle = "";
for (TrunklineBillladingLineVO billladingLineVO:billladingLineList){
String clientName = billladingLineVO.getClientName();
if(StringUtil.isBlank(lineTitle)){
lineTitle = lineTitle + clientName;
}else{
lineTitle = lineTitle + "-->" + clientName;
}
TrunklineBillladingLineEntity billladingLineEntity = new TrunklineBillladingLineEntity();
BeanUtil.copy(billladingLineVO,billladingLineEntity);
billladingLineEntity.setBillladingId(billladingId);
billladingLineEntity.setWarehouseId(warehouseId);
billladingLineEntity.setWarehouseName(warehouseName);
billladingLineService.save(billladingLineEntity);
}
trunklineBillladingEntity.setLineNameTitle(lineTitle);
updateById(trunklineBillladingEntity);
//保存提货运单
List<TrunklineBillladingWaybillVO> billladingWaybillList = billladingDTO.getBillladingWaybillList();
for (TrunklineBillladingWaybillVO billladingWaybillVO:billladingWaybillList){
TrunklineBillladingWaybillEntity billladingWaybillEntity = new TrunklineBillladingWaybillEntity();
BeanUtil.copy(billladingWaybillVO,billladingWaybillEntity);
billladingWaybillEntity.setBillladingId(billladingId);
billladingWaybillEntity.setBilladingCode(trunklineBillladingEntity.getBillladingCode());
billladingWaybillEntity.setRealNum(0);
billladingWaybillEntity.setRealWeight(BigDecimal.ZERO);
billladingWaybillEntity.setRealVolume(BigDecimal.ZERO);
billladingWaybillService.save(billladingWaybillEntity);
}
}
}

Loading…
Cancel
Save