KuaidiHeaderService.java
4.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
package com.huaheng.pc.shipment.kuaidiHeader.service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.huaheng.common.utils.StringUtils;
import com.huaheng.common.utils.Wrappers;
import com.huaheng.common.utils.security.ShiroUtils;
import com.huaheng.framework.web.domain.AjaxResult;
import com.huaheng.framework.web.service.DictService;
import com.huaheng.pc.shipment.kuaidiDetail.domain.KuaidiDetail;
import com.huaheng.pc.shipment.kuaidiHeader.domain.KuaidiHeader;
import com.huaheng.pc.shipment.kuaidiHeader.mapper.KuaidiHeaderMapper;
import com.huaheng.pc.system.dict.service.IDictDataService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* 【请填写功能名称】 服务层实现
*
* @author huaheng
* @date 2022-09-07
*/
@Service
public class KuaidiHeaderService extends ServiceImpl<KuaidiHeaderMapper, KuaidiHeader> {
@Resource
private IDictDataService dictDataService;
public AjaxResult<Boolean> saveHeader(KuaidiHeader kuaidiHeader) {
kuaidiHeader.setType("CO");
if(dictDataService.checkConfig("shipmentType", kuaidiHeader.getType()) == false)
{
return AjaxResult.error("没有对应的出库单类型");
}
String code = this.createCode(kuaidiHeader.getType());
kuaidiHeader.setId(null);
kuaidiHeader.setLastUpdated(null);
kuaidiHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
kuaidiHeader.setCreated(null);
kuaidiHeader.setCreatedBy(ShiroUtils.getLoginName());
kuaidiHeader.setWarehouseCode(ShiroUtils.getWarehouseCode());
kuaidiHeader.setCode(code);
kuaidiHeader.setDeleted(false);
boolean result = this.save(kuaidiHeader);
return AjaxResult.toAjax(result);
}
public String createCode(String shipmentType)
{
String code = null;
Date now = new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
String maxCode =null;
LambdaQueryWrapper<KuaidiHeader> lambdaQueryWrapper = Wrappers.lambdaQuery();
lambdaQueryWrapper.eq(KuaidiHeader::getDeleted,false);
lambdaQueryWrapper.eq(KuaidiHeader::getType,shipmentType);
lambdaQueryWrapper.orderByDesc(KuaidiHeader::getId);
lambdaQueryWrapper.last("limit 1");
KuaidiHeader kuaidiHeader=this.getOne(lambdaQueryWrapper);
if(kuaidiHeader!=null){
maxCode=kuaidiHeader.getCode();
}
if (maxCode != null && maxCode.length() > 13 && maxCode.substring(maxCode.length() - 13, maxCode.length() - 5).equals(df.format(now)))
{
Integer Count = Integer.valueOf(maxCode.substring(maxCode.length() - 5, maxCode.length()));
code = shipmentType + df.format(now) + String.format("%05d", Count + 1);
}
else
{
code = shipmentType + df.format(now) + "00001";
}
return code;
}
/**
* 从U8获取信息
* 1、检查出库单号或者发货单号是否为空,如果为空则报错
* 2、如果是出库单获取信息,剔除在快递单中已存在的出库单
* 3、如果是发货单,分组,剔除在快递单中已存在的出库单
*
*/
@Transactional
public AjaxResult saveU8Kuaidi(KuaidiHeader kuaidiHeader) {
//1、检查出库单号或者发货单号是否为空,如果为空则报错
if(StringUtils.isEmpty(kuaidiHeader.getOrderBill()) &&
StringUtils.isEmpty(kuaidiHeader.getSourceCode())){
return AjaxResult.error("U8出库单号和发货单号为空,请填下U8结束出库单号或发货单单号");
}
//2、如果是出库单获取信息,剔除在快递单中已存在的出库单
return AjaxResult.success("成功");
}
}