Merge branch 'dev' into dev_WMS20260401
# Conflicts: # mhd-user-center/src/main/resources/bootstrap.yml # mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/executeOrder/ExecuteOrderDTO.java # mhd_oms/src/main/resources/bootstrap.yml # mhd_wms/src/main/resources/mapper/deliveTask/DeliveTaskMapper.xml
This commit is contained in:
+10
-1
@@ -234,5 +234,14 @@ public class MaterialBaseInfoFeign extends BaseVOEntity{
|
||||
|
||||
@ApiModelProperty("批次ID")
|
||||
private Long batchId;
|
||||
}
|
||||
|
||||
@ApiModelProperty("保额")
|
||||
@Excel(name = "保额")
|
||||
private BigDecimal insureAmount;
|
||||
|
||||
@ApiModelProperty(name = "收费标准")
|
||||
private String chargeStandard;
|
||||
|
||||
@ApiModelProperty(name = "单位")
|
||||
private String unit;
|
||||
}
|
||||
+2
-2
@@ -54,8 +54,8 @@ public class ContractManagePO extends BaseVOEntity{
|
||||
@Excel(name = "是否通用合同", readConverterExp = "1=-是,2-否")
|
||||
private Integer commonContractFlag;
|
||||
|
||||
@ApiModelProperty("合同类型(1-仓储,2-运输)")
|
||||
@Excel(name = "合同类型", readConverterExp = "1=-仓储,2-运输")
|
||||
@ApiModelProperty("合同类型(1-仓储,2-运输,3-其他)")
|
||||
@Excel(name = "合同类型", readConverterExp = "1=-仓储,2-运输,3=-其他")
|
||||
private Integer contractType;
|
||||
|
||||
@ApiModelProperty("合同状态(1-未生效,2-使用中,3-已过期,4-已作废)")
|
||||
|
||||
+31
-44
@@ -590,6 +590,7 @@ public class ContractManageApplicationService {
|
||||
if (ObjectUtil.isNull(loginUser)) {
|
||||
throw new DigitalLogisticsException(UserError.TIMEOUT);
|
||||
}
|
||||
validateContractType(contractManageDO.getContractType());
|
||||
/*
|
||||
通用合同:同一时间段、同一合同类型,只能存在一个
|
||||
特殊合同:同一结算主体、同一时间段、同一合同类型,只能存在一个
|
||||
@@ -666,6 +667,29 @@ public class ContractManageApplicationService {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验合同类型
|
||||
*/
|
||||
private void validateContractType(Integer contractType) {
|
||||
if (contractType == null) {
|
||||
throw new ServiceException("合同类型不能为空");
|
||||
}
|
||||
if (contractType != 1 && contractType != 2 && contractType != 3) {
|
||||
throw new ServiceException("合同类型不正确,请选择1-仓储、2-运输或3-其他");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询通用合同
|
||||
*/
|
||||
private ContractManagePO findGeneralContract(List<ContractManagePO> contractManagePOList, Integer contractType) {
|
||||
return contractManagePOList.stream()
|
||||
.filter(item -> Objects.equals(item.getContractType(), contractType)
|
||||
&& item.getCommonContractFlag() == 1
|
||||
&& item.getContractState() == 2)
|
||||
.findFirst().orElse(null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验合同是否合法
|
||||
* @param contractManageDO
|
||||
@@ -806,6 +830,7 @@ public class ContractManageApplicationService {
|
||||
*/
|
||||
@Transactional
|
||||
public Boolean update(ContractManageDO contractManageDO) {
|
||||
validateContractType(contractManageDO.getContractType());
|
||||
checkContract(contractManageDO);
|
||||
handleData(contractManageDO);
|
||||
handleDetils(contractManageDO);
|
||||
@@ -845,7 +870,7 @@ public class ContractManageApplicationService {
|
||||
*/
|
||||
public ContractManagePO getInfoByCustomer(String settlementCustomersCode,Integer contractType, Long topOrganizationId) {
|
||||
/*
|
||||
首先根据合同类型(仓储、运输),以及结算客户,查询合同信息
|
||||
首先根据合同类型(仓储、运输、其他),以及结算客户,查询合同信息
|
||||
如果传了结算主体,则根据结算主体以及当前时间查询有效的特殊合同,如果特殊合同没有,则查询通用合同
|
||||
*/
|
||||
//获取当前登录人信息
|
||||
@@ -872,31 +897,12 @@ public class ContractManageApplicationService {
|
||||
ContractManagePO contractManagePO = contractManagePOList.stream()
|
||||
.filter(item -> item.getSettlementCustomersCode().equals(settlementCustomersCode) && Objects.equals(item.getContractType(), contractType)).findFirst().orElse(null);
|
||||
if(null == contractManagePO){
|
||||
if(contractType==1){
|
||||
//仓储合同
|
||||
resultContract = contractManagePOList.stream()
|
||||
.filter(item ->
|
||||
item.getContractType()==1 &&
|
||||
item.getCommonContractFlag() == 1 && item.getContractState() ==2)
|
||||
.findFirst().orElse(null);
|
||||
}else{
|
||||
//运输合同
|
||||
resultContract = contractManagePOList.stream().filter(item -> item.getContractType()==2
|
||||
&& item.getCommonContractFlag() == 1 && item.getContractState() ==2).findFirst().orElse(null);
|
||||
}
|
||||
resultContract = findGeneralContract(contractManagePOList, contractType);
|
||||
}else {
|
||||
resultContract = contractManagePO;
|
||||
}
|
||||
}else {
|
||||
if(contractType==1){
|
||||
//仓储合同
|
||||
resultContract = contractManagePOList.stream().filter(contractManagePO -> contractManagePO.getContractType()==1
|
||||
&& contractManagePO.getCommonContractFlag() == 1 && contractManagePO.getContractState() ==2).findFirst().orElse(null);
|
||||
}else{
|
||||
//运输合同
|
||||
resultContract = contractManagePOList.stream().filter(contractManagePO -> contractManagePO.getContractType()==2
|
||||
&& contractManagePO.getCommonContractFlag() == 1 && contractManagePO.getContractState() ==2).findFirst().orElse(null);
|
||||
}
|
||||
resultContract = findGeneralContract(contractManagePOList, contractType);
|
||||
}
|
||||
if(null == resultContract){
|
||||
throw new ServiceException("找不到匹配的合同,请重试");
|
||||
@@ -936,7 +942,7 @@ public class ContractManageApplicationService {
|
||||
*/
|
||||
public ContractManagePO getInfoByCustomerAndOrganizationId(String settlementCustomersCode,Integer contractType, Long topOrganizationId, Long organizationId) {
|
||||
/*
|
||||
首先根据合同类型(仓储、运输),以及结算客户,查询合同信息
|
||||
首先根据合同类型(仓储、运输、其他),以及结算客户,查询合同信息
|
||||
如果传了结算主体,则根据结算主体以及当前时间查询有效的特殊合同,如果特殊合同没有,则查询通用合同
|
||||
*/
|
||||
//获取当前登录人信息
|
||||
@@ -966,31 +972,12 @@ public class ContractManageApplicationService {
|
||||
ContractManagePO contractManagePO = contractManagePOList.stream()
|
||||
.filter(item -> item.getSettlementCustomersCode().equals(settlementCustomersCode) && Objects.equals(item.getContractType(), contractType)).findFirst().orElse(null);
|
||||
if(null == contractManagePO){
|
||||
if(contractType==1){
|
||||
//仓储合同
|
||||
resultContract = contractManagePOList.stream()
|
||||
.filter(item ->
|
||||
item.getContractType()==1 &&
|
||||
item.getCommonContractFlag() == 1 && item.getContractState() ==2)
|
||||
.findFirst().orElse(null);
|
||||
}else{
|
||||
//运输合同
|
||||
resultContract = contractManagePOList.stream().filter(item -> item.getContractType()==2
|
||||
&& item.getCommonContractFlag() == 1 && item.getContractState() ==2).findFirst().orElse(null);
|
||||
}
|
||||
resultContract = findGeneralContract(contractManagePOList, contractType);
|
||||
}else {
|
||||
resultContract = contractManagePO;
|
||||
}
|
||||
}else {
|
||||
if(contractType==1){
|
||||
//仓储合同
|
||||
resultContract = contractManagePOList.stream().filter(contractManagePO -> contractManagePO.getContractType()==1
|
||||
&& contractManagePO.getCommonContractFlag() == 1 && contractManagePO.getContractState() ==2).findFirst().orElse(null);
|
||||
}else{
|
||||
//运输合同
|
||||
resultContract = contractManagePOList.stream().filter(contractManagePO -> contractManagePO.getContractType()==2
|
||||
&& contractManagePO.getCommonContractFlag() == 1 && contractManagePO.getContractState() ==2).findFirst().orElse(null);
|
||||
}
|
||||
resultContract = findGeneralContract(contractManagePOList, contractType);
|
||||
}
|
||||
if(null == resultContract){
|
||||
throw new ServiceException("找不到匹配的合同,请重试");
|
||||
|
||||
+2
-2
@@ -56,8 +56,8 @@ public class ContractManage extends BaseVOEntity{
|
||||
@Excel(name = "是否通用合同", readConverterExp = "1=-是,2-否")
|
||||
private Integer commonContractFlag;
|
||||
|
||||
@ApiModelProperty("合同类型(1-仓储,2-运输)")
|
||||
@Excel(name = "合同类型", readConverterExp = "1=-仓储,2-运输")
|
||||
@ApiModelProperty("合同类型(1-仓储,2-运输,3-其他)")
|
||||
@Excel(name = "合同类型", readConverterExp = "1=-仓储,2-运输,3=-其他")
|
||||
private Integer contractType;
|
||||
|
||||
@ApiModelProperty("合同状态(1-未生效,2-使用中,3-已过期,4-已作废)")
|
||||
|
||||
+2
-2
@@ -57,8 +57,8 @@ public class ContractManagePO extends BaseVOEntity{
|
||||
@Excel(name = "是否通用合同", readConverterExp = "1=-是,2-否")
|
||||
private Integer commonContractFlag;
|
||||
|
||||
@ApiModelProperty("合同类型(1-仓储,2-运输)")
|
||||
@Excel(name = "合同类型", readConverterExp = "1=-仓储,2-运输")
|
||||
@ApiModelProperty("合同类型(1-仓储,2-运输,3-其他)")
|
||||
@Excel(name = "合同类型", readConverterExp = "1=-仓储,2-运输,3=-其他")
|
||||
private Integer contractType;
|
||||
|
||||
@ApiModelProperty("合同状态(1-未生效,2-使用中,3-已过期,4-已作废)")
|
||||
|
||||
+2
-2
@@ -54,8 +54,8 @@ public class ContractManageDO extends BaseVOEntity{
|
||||
@Excel(name = "是否通用合同", readConverterExp = "1=-是,2-否")
|
||||
private Integer commonContractFlag;
|
||||
|
||||
@ApiModelProperty("合同类型(1-仓储,2-运输)")
|
||||
@Excel(name = "合同类型", readConverterExp = "1=-仓储,2-运输")
|
||||
@ApiModelProperty("合同类型(1-仓储,2-运输,3-其他)")
|
||||
@Excel(name = "合同类型", readConverterExp = "1=-仓储,2-运输,3=-其他")
|
||||
private Integer contractType;
|
||||
|
||||
@ApiModelProperty("合同状态(1-未生效,2-使用中,3-已过期,4-已作废)")
|
||||
|
||||
+8
-1
@@ -74,5 +74,12 @@ public class MaterialClassify extends BaseVOEntity{
|
||||
@Excel(name = "是否作废: 1-否 2-是")
|
||||
private Integer nullify;
|
||||
|
||||
@ApiModelProperty("收费标准")
|
||||
@Excel(name = "收费标准")
|
||||
private String chargeStandard;
|
||||
|
||||
}
|
||||
@ApiModelProperty("单位")
|
||||
@Excel(name = "单位")
|
||||
private String unit;
|
||||
|
||||
}
|
||||
+7
-1
@@ -81,6 +81,12 @@ public class MaterialClassifyPO extends BaseVOEntity{
|
||||
@ApiModelProperty("上级分类字典编码集合")
|
||||
@Excel(name = "上级分类字典编码集合")
|
||||
private List<String> materialClassifyCodeList;
|
||||
@ApiModelProperty("收费标准")
|
||||
@Excel(name = "收费标准")
|
||||
private String chargeStandard;
|
||||
|
||||
@ApiModelProperty("单位")
|
||||
@Excel(name = "单位")
|
||||
private String unit;
|
||||
|
||||
}
|
||||
}
|
||||
+8
-1
@@ -82,4 +82,11 @@ public class MaterialClassifyDO extends BaseVOEntity{
|
||||
@ApiModelProperty("上级分类字典编码集合")
|
||||
@Excel(name = "上级分类字典编码集合")
|
||||
private List<String> materialClassifyCodeList;
|
||||
}
|
||||
@ApiModelProperty("收费标准")
|
||||
@Excel(name = "收费标准")
|
||||
private String chargeStandard;
|
||||
|
||||
@ApiModelProperty("单位")
|
||||
@Excel(name = "单位")
|
||||
private String unit;
|
||||
}
|
||||
+2
-2
@@ -54,8 +54,8 @@ public class ContractManageDTO extends BaseVOEntity{
|
||||
@Excel(name = "是否通用合同", readConverterExp = "1=-是,2-否")
|
||||
private Integer commonContractFlag;
|
||||
|
||||
@ApiModelProperty("合同类型(1-仓储,2-运输)")
|
||||
@Excel(name = "合同类型", readConverterExp = "1=-仓储,2-运输")
|
||||
@ApiModelProperty("合同类型(1-仓储,2-运输,3-其他)")
|
||||
@Excel(name = "合同类型", readConverterExp = "1=-仓储,2-运输,3=-其他")
|
||||
private Integer contractType;
|
||||
|
||||
@ApiModelProperty("合同状态(1-未生效,2-使用中,3-已过期,4-已作废)")
|
||||
|
||||
+8
-1
@@ -82,4 +82,11 @@ public class MaterialClassifyDTO extends BaseVOEntity{
|
||||
@ApiModelProperty("上级分类字典编码集合")
|
||||
@Excel(name = "上级分类字典编码集合")
|
||||
private List<String> materialClassifyCodeList;
|
||||
}
|
||||
@ApiModelProperty("收费标准")
|
||||
@Excel(name = "收费标准")
|
||||
private String chargeStandard;
|
||||
|
||||
@ApiModelProperty("单位")
|
||||
@Excel(name = "单位")
|
||||
private String unit;
|
||||
}
|
||||
+79
@@ -21,6 +21,8 @@ import com.mhd.common.log.annotation.Log;
|
||||
import com.mhd.common.log.enums.BusinessType;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.domain.SysDictData;
|
||||
import com.mhd.system.api.domain.SysDictType;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
|
||||
/**
|
||||
* 数据字典信息
|
||||
@@ -41,10 +43,87 @@ public class SysDictDataController extends BaseController
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(SysDictData dictData)
|
||||
{
|
||||
if (!applyDictDataOrganizationFilterByDictType(dictData))
|
||||
{
|
||||
return getDataTable(new ArrayList<>());
|
||||
}
|
||||
startPage();
|
||||
List<SysDictData> list = dictDataService.selectDictList(dictData);
|
||||
return getDataTable(list);
|
||||
}
|
||||
/**
|
||||
* 列表组织过滤:按字典类型(sys_dict_type)上的组织维度过滤字典数据。
|
||||
* 前端可传 organizationId(通常来自所选字典类型行);南光组织(2827)可选组织或查全部,其他组织仅本组织。
|
||||
*
|
||||
* @return false 表示当前组织下无匹配字典类型,应返回空列表
|
||||
*/
|
||||
private boolean applyDictDataOrganizationFilterByDictType(SysDictData dictData)
|
||||
{
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser == null || loginUser.getUserPo() == null)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
Long loginUserOrganizationId = loginUser.getUserPo().getOrganizationId();
|
||||
Long loginUserTopOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
Long frontendOrganizationId = dictData.getOrganizationId();
|
||||
|
||||
Long queryOrganizationId = null;
|
||||
Long queryTopOrganizationId = null;
|
||||
|
||||
if (loginUserOrganizationId != null && loginUserOrganizationId.equals(2827L))
|
||||
{
|
||||
if (frontendOrganizationId != null)
|
||||
{
|
||||
queryOrganizationId = frontendOrganizationId;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (frontendOrganizationId != null && !frontendOrganizationId.equals(loginUserOrganizationId))
|
||||
{
|
||||
queryOrganizationId = loginUserOrganizationId;
|
||||
}
|
||||
else if (frontendOrganizationId != null)
|
||||
{
|
||||
queryOrganizationId = frontendOrganizationId;
|
||||
}
|
||||
else
|
||||
{
|
||||
queryOrganizationId = loginUserOrganizationId;
|
||||
}
|
||||
queryTopOrganizationId = loginUserTopOrganizationId;
|
||||
}
|
||||
|
||||
if (StringUtils.isEmpty(dictData.getDictType()))
|
||||
{
|
||||
dictData.setOrganizationId(queryOrganizationId);
|
||||
dictData.setTopOrganizationId(queryTopOrganizationId);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (queryOrganizationId == null)
|
||||
{
|
||||
dictData.setOrganizationId(null);
|
||||
dictData.setTopOrganizationId(null);
|
||||
return true;
|
||||
}
|
||||
|
||||
SysDictType typeQuery = new SysDictType();
|
||||
typeQuery.setDictType(dictData.getDictType());
|
||||
typeQuery.setOrganizationId(queryOrganizationId);
|
||||
List<SysDictType> dictTypes = dictTypeService.selectDictTypeList(typeQuery);
|
||||
if (dictTypes.isEmpty())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
SysDictType dictTypeRow = dictTypes.get(0);
|
||||
dictData.setOrganizationId(dictTypeRow.getOrganizationId());
|
||||
dictData.setTopOrganizationId(dictTypeRow.getTopOrganizationId());
|
||||
return true;
|
||||
}
|
||||
|
||||
@PostMapping("/getDictDataList")
|
||||
public R<List<SysDictData>> getDictDataList(@RequestBody SysDictData sysDictData)
|
||||
{
|
||||
|
||||
+57
@@ -43,6 +43,7 @@ public class SysDictTypeController extends BaseController
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(SysDictType dictType)
|
||||
{
|
||||
applyDictTypeOrganizationFilter(dictType);
|
||||
startPage();
|
||||
List<SysDictType> list = dictTypeService.selectDictTypeList(dictType);
|
||||
return getDataTable(list);
|
||||
@@ -53,6 +54,7 @@ public class SysDictTypeController extends BaseController
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, SysDictType dictType)
|
||||
{
|
||||
applyDictTypeOrganizationFilter(dictType);
|
||||
List<SysDictType> list = dictTypeService.selectDictTypeList(dictType);
|
||||
ExcelUtil<SysDictType> util = new ExcelUtil<SysDictType>(SysDictType.class);
|
||||
util.exportExcel(response, list, "字典类型");
|
||||
@@ -85,6 +87,61 @@ public class SysDictTypeController extends BaseController
|
||||
return toAjax(dictTypeService.insertDictType(dict));
|
||||
}
|
||||
|
||||
/**
|
||||
* 列表/导出组织过滤:优先使用前端传递的 organizationId;
|
||||
* 南光组织(2827)可按组织筛选或查全部,其他组织只能查本组织数据。
|
||||
*/
|
||||
private void applyDictTypeOrganizationFilter(SysDictType dictType)
|
||||
{
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser == null || loginUser.getUserPo() == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
Long loginUserOrganizationId = loginUser.getUserPo().getOrganizationId();
|
||||
Long loginUserTopOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
Long frontendOrganizationId = dictType.getOrganizationId();
|
||||
|
||||
if (loginUserOrganizationId != null && loginUserOrganizationId.equals(2827L))
|
||||
{
|
||||
if (frontendOrganizationId != null)
|
||||
{
|
||||
dictType.setOrganizationId(frontendOrganizationId);
|
||||
dictType.setTopOrganizationId(null);
|
||||
}
|
||||
else
|
||||
{
|
||||
dictType.setOrganizationId(null);
|
||||
dictType.setTopOrganizationId(null);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (frontendOrganizationId != null)
|
||||
{
|
||||
if (!frontendOrganizationId.equals(loginUserOrganizationId))
|
||||
{
|
||||
dictType.setOrganizationId(loginUserOrganizationId);
|
||||
}
|
||||
if (loginUserTopOrganizationId != null)
|
||||
{
|
||||
dictType.setTopOrganizationId(loginUserTopOrganizationId);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (loginUserOrganizationId != null)
|
||||
{
|
||||
dictType.setOrganizationId(loginUserOrganizationId);
|
||||
}
|
||||
if (loginUserTopOrganizationId != null)
|
||||
{
|
||||
dictType.setTopOrganizationId(loginUserTopOrganizationId);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 写入组织维度:优先使用请求体中选择的组织;未传时使用当前登录用户所属组织;无登录上下文时按平台(0)处理。
|
||||
*/
|
||||
|
||||
@@ -34,12 +34,12 @@ public interface SysDictTypeMapper
|
||||
public SysDictType selectDictTypeById(Long dictId);
|
||||
|
||||
/**
|
||||
* 根据字典类型查询信息
|
||||
* 根据字典类型及组织查询信息(同一 dict_type 在不同组织下可重复)
|
||||
*
|
||||
* @param dictType 字典类型
|
||||
* @param dictType 字典类型(含 dictType、organizationId)
|
||||
* @return 字典类型
|
||||
*/
|
||||
public SysDictType selectDictTypeByType(String dictType);
|
||||
public SysDictType selectDictTypeByType(SysDictType dictType);
|
||||
|
||||
/**
|
||||
* 通过字典ID删除字典信息
|
||||
|
||||
+3
-3
@@ -43,12 +43,12 @@ public interface ISysDictTypeService
|
||||
public SysDictType selectDictTypeById(Long dictId);
|
||||
|
||||
/**
|
||||
* 根据字典类型查询信息
|
||||
* 根据字典类型及组织查询信息(同一 dict_type 在不同组织下可重复)
|
||||
*
|
||||
* @param dictType 字典类型
|
||||
* @param dictType 字典类型(含 dictType、organizationId)
|
||||
* @return 字典类型
|
||||
*/
|
||||
public SysDictType selectDictTypeByType(String dictType);
|
||||
public SysDictType selectDictTypeByType(SysDictType dictType);
|
||||
|
||||
/**
|
||||
* 批量删除字典信息
|
||||
|
||||
+13
-1
@@ -441,7 +441,19 @@ public class SysDictDataServiceImpl extends ServiceImpl<SysDictDataMapper, SysDi
|
||||
{
|
||||
return;
|
||||
}
|
||||
SysDictType dictTypeRow = dictTypeService.selectDictTypeByType(dictType);
|
||||
Long organizationId = data.getOrganizationId();
|
||||
if (organizationId == null)
|
||||
{
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null && loginUser.getUserPo() != null)
|
||||
{
|
||||
organizationId = loginUser.getUserPo().getOrganizationId();
|
||||
}
|
||||
}
|
||||
SysDictType typeQuery = new SysDictType();
|
||||
typeQuery.setDictType(dictType);
|
||||
typeQuery.setOrganizationId(organizationId);
|
||||
SysDictType dictTypeRow = dictTypeService.selectDictTypeByType(typeQuery);
|
||||
if (dictTypeRow == null)
|
||||
{
|
||||
return;
|
||||
|
||||
+3
-3
@@ -113,13 +113,13 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据字典类型查询信息
|
||||
* 根据字典类型及组织查询信息
|
||||
*
|
||||
* @param dictType 字典类型
|
||||
* @param dictType 字典类型(含 dictType、organizationId)
|
||||
* @return 字典类型
|
||||
*/
|
||||
@Override
|
||||
public SysDictType selectDictTypeByType(String dictType)
|
||||
public SysDictType selectDictTypeByType(SysDictType dictType)
|
||||
{
|
||||
return dictTypeMapper.selectDictTypeByType(dictType);
|
||||
}
|
||||
|
||||
+6
-1
@@ -25,11 +25,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="updateByName" column="update_by_name" />
|
||||
<result property="delFlag" column="del_flag" />
|
||||
<result property="chargeStandard" column="charge_standard" />
|
||||
<result property="unit" column="unit" />
|
||||
</resultMap>
|
||||
|
||||
|
||||
<sql id="selectMaterialClassifyPo">
|
||||
select material_classify_id, organization_id, organization_name, top_organization_id, code, name, level, parent_code, parent_name, code_path, name_path, remark, nullify, create_time, create_by, create_by_name, update_time, update_by, update_by_name, del_flag from material_classify
|
||||
select material_classify_id, organization_id, organization_name, top_organization_id, code, name, level, parent_code,
|
||||
parent_name, code_path, name_path, remark, nullify, create_time, create_by, create_by_name, update_time, update_by,
|
||||
update_by_name, del_flag,CHARGE_STANDARD,unit
|
||||
from material_classify
|
||||
</sql>
|
||||
|
||||
<sql id="selectMaterialClassifyPo1">
|
||||
|
||||
@@ -61,9 +61,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
where dict_id = #{dictId}
|
||||
</select>
|
||||
|
||||
<select id="selectDictTypeByType" parameterType="String" resultMap="SysDictTypeResult">
|
||||
<select id="selectDictTypeByType" parameterType="SysDictType" resultMap="SysDictTypeResult">
|
||||
<include refid="selectDictTypeVo"/>
|
||||
where dict_type = #{dictType}
|
||||
and IFNULL(organization_id, 0) = IFNULL(#{organizationId}, 0)
|
||||
limit 1
|
||||
</select>
|
||||
|
||||
<select id="checkDictTypeUnique" parameterType="SysDictType" resultMap="SysDictTypeResult">
|
||||
|
||||
+11
@@ -416,6 +416,17 @@ public class UserDriverApplicationService {
|
||||
VehiclePo vehicleData = vehicle.getData();
|
||||
log.info("查到到车辆信息:{}",vehicleData);
|
||||
|
||||
// 如果车辆存在且当前用户与该车辆的绑定关系已存在,则跳过绑定,避免重复创建绑定记录
|
||||
if (vehicleData != null && vehicleData.getVehicleId() != null) {
|
||||
DriverVehicleBind existingBind = driverVehicleBindDomainService.getBindInfoListByVehicle(
|
||||
vehicleData.getVehicleId(), driver.getUserId());
|
||||
if (ObjectUtil.isNotNull(existingBind)) {
|
||||
log.info("用户[{}]与车辆[{}]的绑定关系已存在,跳过绑定操作",
|
||||
driver.getUserId(), driver.getVehicleLicensePlateNumber());
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
DriverVehicleBind driverVehicleBind = driverVehicleBindDomainService.isVehicleBinding(driver.getVehicleLicensePlateNumber());
|
||||
Boolean isBound=false;
|
||||
if(ObjectUtil.isNotNull(driverVehicleBind)&&!driverVehicleBind.getDriverBindId().equals(driver.getUserId())){
|
||||
|
||||
+9
@@ -568,6 +568,15 @@ public class UserDriverEnterpriseApplicationService {
|
||||
public Map<String, Object> captainAuth(UserDriverEnterpriseDo userDriverEnterpriseDo) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
if (org.apache.commons.lang3.StringUtils.isBlank(userDriverEnterpriseDo.getUserAccount())) {
|
||||
throw new ServiceException("用户账号不能为空");
|
||||
}
|
||||
if (org.apache.commons.lang3.StringUtils.isBlank(userDriverEnterpriseDo.getUserName())) {
|
||||
throw new ServiceException("用户姓名不能为空");
|
||||
}
|
||||
if (org.apache.commons.lang3.StringUtils.isBlank(userDriverEnterpriseDo.getUserPhone())) {
|
||||
throw new ServiceException("用户电话不能为空");
|
||||
}
|
||||
|
||||
// 1. 前置检查:如果用户已存在,检查是否已加入其他车队
|
||||
performPreChecks(userDriverEnterpriseDo);
|
||||
|
||||
+3
@@ -326,6 +326,9 @@ public class UserDriverDomainService {
|
||||
|
||||
public UserDriverPo getDriverDataByUserId(Long userId) {
|
||||
UserDriverPo userDriverPo=userDriverRepositoryInterface.getDriverDataByUserId(userId);
|
||||
if (userDriverPo == null) {
|
||||
return null;
|
||||
}
|
||||
R<List<VehiclePo>> vehicleR=transportFeign.getVehiclePosByUserId(userDriverPo.getUserId());
|
||||
if (R.SUCCESS == vehicleR.getCode() && vehicleR.getData() != null && !vehicleR.getData().isEmpty()) {
|
||||
userDriverPo.setVehicleList(vehicleR.getData());
|
||||
|
||||
@@ -20,17 +20,17 @@ spring:
|
||||
discovery:
|
||||
# server-addr: 127.0.0.1:8848
|
||||
# 线上测试环境配置 容器名+端口号
|
||||
server-addr: 10.33.0.129:6010
|
||||
# server-addr: 10.102.192.31:6848
|
||||
# username: nacos
|
||||
# password: manhuoda@2023
|
||||
# server-addr: 10.33.0.129:6010
|
||||
server-addr: 10.102.192.31:6848
|
||||
username: nacos
|
||||
password: manhuoda@2023
|
||||
config:
|
||||
# server-addr: 127.0.0.1:8848
|
||||
# 线上测试环境配置 容器名+端口号
|
||||
server-addr: 10.33.0.129:6010
|
||||
# server-addr: 10.102.192.31:6848
|
||||
# username: nacos
|
||||
# password: manhuoda@2023
|
||||
# server-addr: 10.33.0.129:6010
|
||||
server-addr: 10.102.192.31:6848
|
||||
username: nacos
|
||||
password: manhuoda@2023
|
||||
group: DEFAULT_GROUP # 默认分组就是DEFAULT_GROUP,如果使用默认分组可以不配置
|
||||
file-extension: yml #默认properties
|
||||
# 共享配置
|
||||
|
||||
+11
-1
@@ -279,7 +279,17 @@ public class ReportFormApplicationService {
|
||||
k.put("project_code",projectCode == null ? value : projectCode);
|
||||
break;
|
||||
case "contractType":
|
||||
k.put("contract_type",ObjectUtil.equals(value,1) ? "仓储" : "运输");
|
||||
String contractTypeName;
|
||||
if (ObjectUtil.equals(value, 1)) {
|
||||
contractTypeName = "仓储";
|
||||
} else if (ObjectUtil.equals(value, 2)) {
|
||||
contractTypeName = "运输";
|
||||
} else if (ObjectUtil.equals(value, 3)) {
|
||||
contractTypeName = "其他";
|
||||
} else {
|
||||
contractTypeName = String.valueOf(value);
|
||||
}
|
||||
k.put("contract_type", contractTypeName);
|
||||
break;
|
||||
case "organizationId":
|
||||
String organizationId = v.stream().filter(item -> item.getOrganizationId()==Long.parseLong(value.toString())).findAny().map(BillingStatement::getOrganizationName).orElse(null);
|
||||
|
||||
+195
-89
@@ -1,7 +1,6 @@
|
||||
package com.mhd.bms.application.server.settlementCustomers;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
@@ -9,6 +8,7 @@ import com.mhd.bms.domain.settlementCustomers.entity.SettlementCustomers;
|
||||
import com.mhd.bms.domain.settlementCustomers.repository.mapper.SettlementCustomersMapper;
|
||||
import com.mhd.bms.domain.settlementCustomers.repository.po.SettlementCustomersPO;
|
||||
import com.mhd.bms.domain.settlementCustomers.repository.todo.SettlementCustomersDO;
|
||||
import com.mhd.bms.domain.settlementCustomers.repository.persistence.SettlementCustomersImpl;
|
||||
import com.mhd.bms.domain.settlementCustomers.service.SettlementCustomersDomainService;
|
||||
import com.mhd.bms.interfaces.dto.settlementCustomers.SettlementCustomersDTO;
|
||||
import com.mhd.common.core.domain.po.SysDictDataVo;
|
||||
@@ -34,7 +34,9 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
@@ -56,7 +58,10 @@ public class SettlementCustomersApplicationService {
|
||||
private UserServiceFeign userServiceFeign;
|
||||
@Autowired
|
||||
private SettlementCustomersMapper settlementCustomersMapper;
|
||||
@Autowired
|
||||
private SettlementCustomersImpl settlementCustomersImpl;
|
||||
|
||||
private static final int SYNC_BATCH_SIZE = 500;
|
||||
|
||||
/**
|
||||
* 分页查询结算对象列表
|
||||
@@ -248,105 +253,206 @@ public class SettlementCustomersApplicationService {
|
||||
* 同步结算对象
|
||||
*/
|
||||
public void syncSettlementCustomers() {
|
||||
/*
|
||||
查询当前租户下所有的托运人、承运人、货主
|
||||
对比用户id及主体角色,过滤出未同步的结算对象数据,
|
||||
新增结算对象,结算方式默认月结,结算方向根据角色区分,承运商是收款方,客户是付款方
|
||||
|
||||
首先采用同步请求方式,如果后续数据量过大,更换消息队列或者异步新增
|
||||
*/
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (ObjectUtil.isNull(loginUser)) {
|
||||
throw new DigitalLogisticsException(UserError.TIMEOUT);
|
||||
}
|
||||
SettlementCustomersDO settlementCustomersDO = new SettlementCustomersDO();
|
||||
settlementCustomersDO.setMainRole(2);
|
||||
settlementCustomersDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
List<SettlementCustomersPO> settlementCustomersList = settlementCustomersDomainService.queryList(settlementCustomersDO);
|
||||
//TODO 查询货主信息
|
||||
// List<SettlementCustomersPO> saveSettingCustomersList = settlementCustomersList
|
||||
long startMs = System.currentTimeMillis();
|
||||
SyncDictCache dictCache = loadSyncDictCache();
|
||||
Map<String, SettlementCustomers> existingMap = loadExistingSettlementCustomersMap(
|
||||
loginUser.getUserPo().getTopOrganizationId());
|
||||
List<SettlementCustomers> toInsert = new ArrayList<>();
|
||||
List<SettlementCustomers> toUpdate = new ArrayList<>();
|
||||
syncShipperSettlementCustomers(loginUser, existingMap, dictCache, toInsert, toUpdate);
|
||||
syncDriverSettlementCustomers(loginUser, existingMap, dictCache, toInsert, toUpdate);
|
||||
batchPersist(toInsert, toUpdate);
|
||||
log.info("同步结算对象完成,新增{}条,更新{}条,耗时{}ms", toInsert.size(), toUpdate.size(), System.currentTimeMillis() - startMs);
|
||||
}
|
||||
|
||||
//查询托运人信息,并过滤,同步
|
||||
settlementCustomersDO.setMainRole(2);
|
||||
List<SettlementCustomersPO> shipperList = settlementCustomersDomainService.queryList(settlementCustomersDO);
|
||||
private void syncShipperSettlementCustomers(LoginUser loginUser,
|
||||
Map<String, SettlementCustomers> existingMap,
|
||||
SyncDictCache dictCache,
|
||||
List<SettlementCustomers> toInsert,
|
||||
List<SettlementCustomers> toUpdate) {
|
||||
AjaxResult ajaxResult = userServiceFeign.userShipperListAll();
|
||||
List<UserShipperPo> userShipperPoList = new ArrayList<>();
|
||||
if ("200".equals(String.valueOf(ajaxResult.get("code"))) && ObjectUtil.isNotNull(ajaxResult.get("data"))) {
|
||||
userShipperPoList = JSONUtil.toList(JSONObject.toJSONString(ajaxResult.get("data")), UserShipperPo.class);
|
||||
List<UserShipperPo> userShipperPoList = parseFeignList(ajaxResult, UserShipperPo.class);
|
||||
if (userShipperPoList.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
if(userShipperPoList != null && userShipperPoList.size()>0){
|
||||
//使用stream流过滤出 userShipperPoList中有但是shipperList中没有的集合
|
||||
List<UserShipperPo> shipperListNew = userShipperPoList.stream().filter(userShipperPo -> {
|
||||
return shipperList.stream().noneMatch(shipper -> ObjectUtil.equal(shipper.getSettlementEntityId(),userShipperPo.getUserId()));
|
||||
}).collect(Collectors.toList());
|
||||
if(shipperListNew.size()>0){
|
||||
shipperListNew.forEach(userShipperPo -> {
|
||||
SettlementCustomersDO saveEntity = new SettlementCustomersDO();
|
||||
saveEntity.setSettlementCustomersCode(OrderSequence.getOrderCode());
|
||||
saveEntity.setSettlementEntityId(userShipperPo.getUserId());
|
||||
saveEntity.setSettlementEntity(userShipperPo.getUserName());
|
||||
saveEntity.setSettlementMethodCode("monthly_settle");
|
||||
saveEntity.setMainRole(1);
|
||||
saveEntity.setCustomerTypeCode("customer"); //从货主同步过来的 默认客户
|
||||
saveEntity.setNcCode(userShipperPo.getCustomerNcCode());
|
||||
saveEntity.setCreateTime(new Date()); // Set the create time to the current date and time
|
||||
Long settlementEntityId = saveEntity.getSettlementEntityId();
|
||||
List<SettlementCustomers> settlementCustomers = settlementCustomersMapper.selectList(new LambdaQueryWrapper<SettlementCustomers>().eq(SettlementCustomers::getSettlementEntityId, settlementEntityId));
|
||||
if(settlementCustomers != null && settlementCustomers.size() > 0){
|
||||
for (SettlementCustomers settlementCustomer : settlementCustomers) {
|
||||
settlementCustomer.setSettlementEntity(userShipperPo.getUserName());
|
||||
settlementCustomer.setSettlementMethodCode("monthly_settle");
|
||||
settlementCustomer.setMainRole(1);
|
||||
settlementCustomer.setNcCode(userShipperPo.getCustomerNcCode());
|
||||
settlementCustomer.setSettlementEntity(userShipperPo.getUserName());
|
||||
settlementCustomersMapper.updateById(settlementCustomer);
|
||||
}
|
||||
} else {
|
||||
saveEntity(saveEntity);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
//查询承运人信息,并过滤,同步
|
||||
settlementCustomersDO.setMainRole(1);
|
||||
List<SettlementCustomersPO> driverList = settlementCustomersDomainService.queryList(settlementCustomersDO);
|
||||
AjaxResult ajaxResultDriver = userServiceFeign.userDriverListAll();
|
||||
List<UserDriverPo> userDriverPoList = new ArrayList<>();
|
||||
if ("200".equals(String.valueOf(ajaxResultDriver.get("code"))) && ObjectUtil.isNotNull(ajaxResultDriver.get("data"))) {
|
||||
userDriverPoList = JSONUtil.toList(JSONObject.toJSONString(ajaxResultDriver.get("data")), UserDriverPo.class);
|
||||
}
|
||||
if(userDriverPoList != null && userDriverPoList.size()>0){
|
||||
//使用stream流过滤出 userDriverPoList中有但是driverList中没有的集合
|
||||
List<UserDriverPo> driverListNew = userDriverPoList.stream().filter(item -> {
|
||||
return driverList.stream().noneMatch(driver -> ObjectUtil.equal(driver.getSettlementEntityId(),item.getUserId()));
|
||||
}).collect(Collectors.toList());
|
||||
if(driverListNew.size()>0){
|
||||
driverListNew.forEach(userDriverPo -> {
|
||||
SettlementCustomersDO saveEntity = new SettlementCustomersDO();
|
||||
saveEntity.setSettlementCustomersCode(OrderSequence.getOrderCode());
|
||||
saveEntity.setSettlementEntityId(userDriverPo.getUserId());
|
||||
saveEntity.setSettlementEntity(userDriverPo.getUserName());
|
||||
saveEntity.setSettlementMethodCode("monthly_settle");
|
||||
saveEntity.setMainRole(1);
|
||||
saveEntity.setCustomerTypeCode("customer");
|
||||
saveEntity.setCreateTime(new Date()); // Set the create time to the current date and time
|
||||
Long settlementEntityId = saveEntity.getSettlementEntityId();
|
||||
List<SettlementCustomers> settlementCustomers = settlementCustomersMapper.selectList(new LambdaQueryWrapper<SettlementCustomers>().eq(SettlementCustomers::getSettlementEntityId, settlementEntityId));
|
||||
if(settlementCustomers != null && settlementCustomers.size() > 0){
|
||||
for (SettlementCustomers settlementCustomer : settlementCustomers) {
|
||||
settlementCustomer.setSettlementEntity(userDriverPo.getUserName());
|
||||
settlementCustomer.setSettlementMethodCode("monthly_settle");
|
||||
settlementCustomer.setMainRole(1);
|
||||
settlementCustomersMapper.updateById(settlementCustomer);
|
||||
}
|
||||
} else {
|
||||
saveEntity(saveEntity);
|
||||
}
|
||||
});
|
||||
for (UserShipperPo userShipperPo : userShipperPoList) {
|
||||
if (StringUtils.isEmpty(userShipperPo.getUserName())) {
|
||||
continue;
|
||||
}
|
||||
Long organizationId = userShipperPo.getOrganizationId() != null
|
||||
? userShipperPo.getOrganizationId()
|
||||
: loginUser.getUserPo().getOrganizationId();
|
||||
SettlementCustomersDO saveEntity = buildShipperSettlementCustomerDO(userShipperPo, loginUser, organizationId);
|
||||
collectSyncEntity(existingMap, dictCache, organizationId, userShipperPo.getUserName(), saveEntity, toInsert, toUpdate);
|
||||
}
|
||||
}
|
||||
|
||||
private void syncDriverSettlementCustomers(LoginUser loginUser,
|
||||
Map<String, SettlementCustomers> existingMap,
|
||||
SyncDictCache dictCache,
|
||||
List<SettlementCustomers> toInsert,
|
||||
List<SettlementCustomers> toUpdate) {
|
||||
AjaxResult ajaxResultDriver = userServiceFeign.userDriverListAll();
|
||||
List<UserDriverPo> userDriverPoList = parseFeignList(ajaxResultDriver, UserDriverPo.class);
|
||||
if (userDriverPoList.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
for (UserDriverPo userDriverPo : userDriverPoList) {
|
||||
if (StringUtils.isEmpty(userDriverPo.getUserName())) {
|
||||
continue;
|
||||
}
|
||||
Long organizationId = userDriverPo.getOrganizationId() != null
|
||||
? userDriverPo.getOrganizationId()
|
||||
: loginUser.getUserPo().getOrganizationId();
|
||||
SettlementCustomersDO saveEntity = buildDriverSettlementCustomerDO(userDriverPo, loginUser, organizationId);
|
||||
collectSyncEntity(existingMap, dictCache, organizationId, userDriverPo.getUserName(), saveEntity, toInsert, toUpdate);
|
||||
}
|
||||
}
|
||||
|
||||
private void collectSyncEntity(Map<String, SettlementCustomers> existingMap,
|
||||
SyncDictCache dictCache,
|
||||
Long organizationId,
|
||||
String settlementEntity,
|
||||
SettlementCustomersDO saveEntity,
|
||||
List<SettlementCustomers> toInsert,
|
||||
List<SettlementCustomers> toUpdate) {
|
||||
String key = buildOrgEntityKey(organizationId, settlementEntity);
|
||||
SettlementCustomers existing = existingMap.get(key);
|
||||
applySyncDictLabels(saveEntity, dictCache);
|
||||
if (existing != null) {
|
||||
saveEntity.setSettlementCustomersId(existing.getSettlementCustomersId());
|
||||
saveEntity.setSettlementCustomersCode(existing.getSettlementCustomersCode());
|
||||
toUpdate.add(toEntity(saveEntity));
|
||||
} else {
|
||||
saveEntity.setSettlementCustomersCode(OrderSequence.getOrderCode());
|
||||
saveEntity.setDelFlag(1);
|
||||
SettlementCustomers entity = toEntity(saveEntity);
|
||||
toInsert.add(entity);
|
||||
existingMap.put(key, entity);
|
||||
}
|
||||
}
|
||||
|
||||
private void batchPersist(List<SettlementCustomers> toInsert, List<SettlementCustomers> toUpdate) {
|
||||
if (!toInsert.isEmpty()) {
|
||||
settlementCustomersImpl.saveBatch(toInsert, SYNC_BATCH_SIZE);
|
||||
}
|
||||
if (!toUpdate.isEmpty()) {
|
||||
settlementCustomersImpl.updateBatchById(toUpdate, SYNC_BATCH_SIZE);
|
||||
}
|
||||
}
|
||||
|
||||
private Map<String, SettlementCustomers> loadExistingSettlementCustomersMap(Long topOrganizationId) {
|
||||
LambdaQueryWrapper<SettlementCustomers> wrapper = new LambdaQueryWrapper<SettlementCustomers>()
|
||||
.eq(SettlementCustomers::getDelFlag, 1);
|
||||
if (topOrganizationId != null) {
|
||||
wrapper.eq(SettlementCustomers::getTopOrganizationId, topOrganizationId);
|
||||
}
|
||||
List<SettlementCustomers> existingList = settlementCustomersMapper.selectList(wrapper);
|
||||
Map<String, SettlementCustomers> existingMap = new HashMap<>(existingList.size() * 2);
|
||||
for (SettlementCustomers existing : existingList) {
|
||||
if (existing.getOrganizationId() != null && StringUtils.isNotEmpty(existing.getSettlementEntity())) {
|
||||
existingMap.put(buildOrgEntityKey(existing.getOrganizationId(), existing.getSettlementEntity()), existing);
|
||||
}
|
||||
}
|
||||
return existingMap;
|
||||
}
|
||||
|
||||
private SyncDictCache loadSyncDictCache() {
|
||||
SyncDictCache cache = new SyncDictCache();
|
||||
cache.settlementMethodLabel = resolveDictLabel(DictCode.SETTLEWAY.getCode(), "monthly_settle");
|
||||
cache.customerTypeLabel = resolveDictLabel(DictCode.CUSTOMER_TYPE.getCode(), "customer");
|
||||
return cache;
|
||||
}
|
||||
|
||||
private String resolveDictLabel(String dictType, String dictValue) {
|
||||
AjaxResult ajaxResult = systemServiceFeign.selectListByDictType(dictType);
|
||||
if (!"200".equals(String.valueOf(ajaxResult.get("code"))) || ajaxResult.get("data") == null) {
|
||||
return null;
|
||||
}
|
||||
List<SysDictDataVo> dictList = JSON.parseArray(JSONObject.toJSONString(ajaxResult.get("data")), SysDictDataVo.class);
|
||||
if (dictList == null || dictList.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
return dictList.stream()
|
||||
.filter(info -> ObjectUtil.equal(info.getDictValue(), dictValue))
|
||||
.map(SysDictDataVo::getDictLabel)
|
||||
.findAny()
|
||||
.orElse(null);
|
||||
}
|
||||
|
||||
private void applySyncDictLabels(SettlementCustomersDO settlementCustomersDO, SyncDictCache dictCache) {
|
||||
if (StringUtils.isNotEmpty(settlementCustomersDO.getSettlementMethodCode()) && dictCache.settlementMethodLabel != null) {
|
||||
settlementCustomersDO.setSettlementMethod(dictCache.settlementMethodLabel);
|
||||
}
|
||||
if (StringUtils.isNotEmpty(settlementCustomersDO.getCustomerTypeCode()) && dictCache.customerTypeLabel != null) {
|
||||
settlementCustomersDO.setCustomerType(dictCache.customerTypeLabel);
|
||||
}
|
||||
}
|
||||
|
||||
private <T> List<T> parseFeignList(AjaxResult ajaxResult, Class<T> clazz) {
|
||||
if (!"200".equals(String.valueOf(ajaxResult.get("code"))) || ObjectUtil.isNull(ajaxResult.get("data"))) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
List<T> list = JSON.parseArray(JSON.toJSONString(ajaxResult.get("data")), clazz);
|
||||
return list != null ? list : new ArrayList<>();
|
||||
}
|
||||
|
||||
private SettlementCustomers toEntity(SettlementCustomersDO settlementCustomersDO) {
|
||||
SettlementCustomers settlementCustomers = new SettlementCustomers();
|
||||
BeanUtils.copyProperties(settlementCustomersDO, settlementCustomers);
|
||||
return settlementCustomers;
|
||||
}
|
||||
|
||||
private String buildOrgEntityKey(Long organizationId, String settlementEntity) {
|
||||
return organizationId + "|" + settlementEntity;
|
||||
}
|
||||
|
||||
private static class SyncDictCache {
|
||||
private String settlementMethodLabel;
|
||||
private String customerTypeLabel;
|
||||
}
|
||||
|
||||
private SettlementCustomersDO buildShipperSettlementCustomerDO(UserShipperPo userShipperPo, LoginUser loginUser, Long organizationId) {
|
||||
SettlementCustomersDO saveEntity = new SettlementCustomersDO();
|
||||
saveEntity.setSettlementEntityId(userShipperPo.getUserId());
|
||||
saveEntity.setSettlementEntity(userShipperPo.getUserName());
|
||||
saveEntity.setSettlementMethodCode("monthly_settle");
|
||||
saveEntity.setMainRole(1);
|
||||
saveEntity.setCustomerTypeCode("customer");
|
||||
saveEntity.setNcCode(userShipperPo.getCustomerNcCode());
|
||||
saveEntity.setSettlementCurrency(userShipperPo.getSettlementCurrency());
|
||||
saveEntity.setOrganizationId(organizationId);
|
||||
saveEntity.setOrganizationName(StringUtils.isNotEmpty(userShipperPo.getOrganizationName())
|
||||
? userShipperPo.getOrganizationName()
|
||||
: loginUser.getUserPo().getOrganizationName());
|
||||
saveEntity.setTopOrganizationId(userShipperPo.getTopOrganizationId() != null
|
||||
? userShipperPo.getTopOrganizationId()
|
||||
: loginUser.getUserPo().getTopOrganizationId());
|
||||
saveEntity.setCreateTime(new Date());
|
||||
return saveEntity;
|
||||
}
|
||||
|
||||
private SettlementCustomersDO buildDriverSettlementCustomerDO(UserDriverPo userDriverPo, LoginUser loginUser, Long organizationId) {
|
||||
SettlementCustomersDO saveEntity = new SettlementCustomersDO();
|
||||
saveEntity.setSettlementEntityId(userDriverPo.getUserId());
|
||||
saveEntity.setSettlementEntity(userDriverPo.getUserName());
|
||||
saveEntity.setSettlementMethodCode("monthly_settle");
|
||||
saveEntity.setMainRole(1);
|
||||
saveEntity.setCustomerTypeCode("customer");
|
||||
saveEntity.setOrganizationId(organizationId);
|
||||
saveEntity.setOrganizationName(StringUtils.isNotEmpty(userDriverPo.getOrganizationName())
|
||||
? userDriverPo.getOrganizationName()
|
||||
: loginUser.getUserPo().getOrganizationName());
|
||||
saveEntity.setTopOrganizationId(userDriverPo.getTopOrganizationId() != null
|
||||
? userDriverPo.getTopOrganizationId()
|
||||
: loginUser.getUserPo().getTopOrganizationId());
|
||||
saveEntity.setCreateTime(new Date());
|
||||
return saveEntity;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存结算客户信息
|
||||
|
||||
+3
@@ -92,5 +92,8 @@ public class SettlementCustomers extends BaseVOEntity{
|
||||
@ApiModelProperty(name = "nc编码")
|
||||
private String ncCode;
|
||||
|
||||
@ApiModelProperty("默认结算币种")
|
||||
private String settlementCurrency;
|
||||
|
||||
|
||||
}
|
||||
+1
-1
@@ -93,7 +93,7 @@ public class SettlementCustomersPO extends BaseVOEntity{
|
||||
@ApiModelProperty(name = "nc编码")
|
||||
private String ncCode;
|
||||
|
||||
@ApiModelProperty(name = "结算币种")
|
||||
@ApiModelProperty("默认结算币种")
|
||||
private String settlementCurrency;
|
||||
|
||||
@ApiModelProperty("业务单据id")
|
||||
|
||||
+3
@@ -105,6 +105,9 @@ public class SettlementCustomersDO extends BaseVOEntity{
|
||||
@ApiModelProperty(name = "nc编码")
|
||||
private String ncCode;
|
||||
|
||||
@ApiModelProperty("默认结算币种")
|
||||
private String settlementCurrency;
|
||||
|
||||
@ApiModelProperty("业务流水号")
|
||||
private String businessFlow;
|
||||
|
||||
|
||||
@@ -54,8 +54,8 @@ public class ContractManagePO extends BaseVOEntity{
|
||||
@Excel(name = "是否通用合同", readConverterExp = "1=-是,2-否")
|
||||
private Integer commonContractFlag;
|
||||
|
||||
@ApiModelProperty("合同类型(1-仓储,2-运输)")
|
||||
@Excel(name = "合同类型", readConverterExp = "1=-仓储,2-运输")
|
||||
@ApiModelProperty("合同类型(1-仓储,2-运输,3-其他)")
|
||||
@Excel(name = "合同类型", readConverterExp = "1=-仓储,2-运输,3=-其他")
|
||||
private Integer contractType;
|
||||
|
||||
@ApiModelProperty("合同状态(1-未生效,2-使用中,3-已过期,4-已作废)")
|
||||
|
||||
+3
@@ -104,6 +104,9 @@ public class SettlementCustomersDTO extends BaseVOEntity{
|
||||
@ApiModelProperty(name = "nc编码")
|
||||
private String ncCode;
|
||||
|
||||
@ApiModelProperty("默认结算币种")
|
||||
private String settlementCurrency;
|
||||
|
||||
@ApiModelProperty("业务流水号")
|
||||
private String businessFlow;
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
<result property="customerTypeCode" column="customer_type_code" />
|
||||
<result property="projectCode" column="project_code" />
|
||||
<result property="projectName" column="project_name" />
|
||||
<result property="ncCode" column="nc_code" />
|
||||
<result property="settlementObject" column="settlement_object" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="createBy" column="create_by" />
|
||||
@@ -71,11 +72,40 @@
|
||||
</if>
|
||||
</sql>
|
||||
|
||||
<sql id="settlement_customers_columns">
|
||||
a.settlement_customers_id,
|
||||
a.top_organization_id,
|
||||
a.organization_id,
|
||||
a.organization_name,
|
||||
a.settlement_customers_code,
|
||||
a.settlement_entity_id,
|
||||
a.settlement_entity,
|
||||
a.settlement_method,
|
||||
a.settlement_method_code,
|
||||
a.bank_name,
|
||||
a.bank_card_number,
|
||||
a.bank_binding_name,
|
||||
a.remark,
|
||||
a.main_role,
|
||||
a.customer_type,
|
||||
a.customer_type_code,
|
||||
a.project_code,
|
||||
a.project_name,
|
||||
a.nc_code,
|
||||
a.create_time,
|
||||
a.create_by,
|
||||
a.create_by_name,
|
||||
a.update_time,
|
||||
a.update_by,
|
||||
a.update_by_name,
|
||||
a.del_flag
|
||||
</sql>
|
||||
|
||||
<select id="queryList" parameterType="com.mhd.bms.domain.settlementCustomers.repository.todo.SettlementCustomersDO"
|
||||
resultMap="SettlementCustomersResult">
|
||||
select
|
||||
a.*,
|
||||
b.SETTLEMENT_CURRENCY as settlement_currency,
|
||||
<include refid="settlement_customers_columns"/>,
|
||||
COALESCE(a.settlement_currency, b.SETTLEMENT_CURRENCY) as settlement_currency,
|
||||
bd.business_document_id,
|
||||
bd.business_flow,
|
||||
bd.original_business_num,
|
||||
|
||||
+2
@@ -20,4 +20,6 @@ public interface ExecuteOrderMapper extends BaseMapper<ExecuteOrder>
|
||||
public List<ExecuteOrderPO> queryList(ExecuteOrderDO executeOrderDO);
|
||||
|
||||
String getOrgNameByOrgId(@Param("organizationId") Long organizationId);
|
||||
|
||||
void updateTmsOrderImage(@Param("executeOrderNumber") String executeOrderNumber,@Param("pictureUrl") String pictureUrl);
|
||||
}
|
||||
|
||||
+9
@@ -258,4 +258,13 @@ public class MaterialBaseInfoDTO extends BaseVOEntity {
|
||||
@ApiModelProperty("是否抄码: 1-是 2-否")
|
||||
@Excel(name = "是否抄码: 1-是 2-否")
|
||||
private Integer copyCode;
|
||||
@ApiModelProperty("保额")
|
||||
@Excel(name = "保额")
|
||||
private BigDecimal insureAmount;
|
||||
|
||||
@ApiModelProperty(name = "收费标准")
|
||||
private String chargeStandard;
|
||||
|
||||
@ApiModelProperty(name = "单位")
|
||||
private String unit;
|
||||
}
|
||||
+14
@@ -18,6 +18,8 @@ import com.mhd.oms.domain.businessDeliveryDetailsLink.repository.facade.IBusines
|
||||
import com.mhd.oms.domain.businessDeliveryDetailsLink.repository.mapper.BusinessDeliveryDetailsLinkMapper;
|
||||
import com.mhd.oms.domain.businessDocumentOrder.entity.BusinessDocumentOrder;
|
||||
import com.mhd.oms.domain.businessDocumentOrder.repository.mapper.BusinessDocumentOrderMapper;
|
||||
import com.mhd.oms.domain.executeOrder.entity.ExecuteOrder;
|
||||
import com.mhd.oms.domain.executeOrder.repository.mapper.ExecuteOrderMapper;
|
||||
import com.mhd.oms.domain.reservationDeliveryDetailsLink.entity.ReservationDeliveryDetailsLink;
|
||||
import com.mhd.oms.domain.reservationDeliveryDetailsLink.repository.facade.IReservationDeliveryDetailsLinkService;
|
||||
import com.mhd.oms.domain.reservationInMaterialDetail.entity.ReservationInMaterialDetail;
|
||||
@@ -76,6 +78,9 @@ public class ReservationStockOutOrderDomainService {
|
||||
private ReservationStockInOrderMapper reservationStockInOrderMapper;
|
||||
@Autowired
|
||||
private BusinessDocumentOrderMapper businessDocumentOrderMapper;
|
||||
@Autowired
|
||||
private ExecuteOrderMapper executeOrderMapper;
|
||||
|
||||
@Resource
|
||||
private SystemServiceFeign systemServiceFeign;
|
||||
@Resource
|
||||
@@ -844,6 +849,15 @@ public class ReservationStockOutOrderDomainService {
|
||||
BusinessDocumentOrder businessDocumentOrder = businessDocumentOrderMapper.selectOne(new LambdaQueryWrapper<BusinessDocumentOrder>().eq(BusinessDocumentOrder::getId, subOrderId));
|
||||
businessDocumentOrder.setOrderStatus(3L);
|
||||
businessDocumentOrderMapper.updateById(businessDocumentOrder);
|
||||
String executeOrderNumber = businessDocumentOrder.getExecuteOrderNumber();
|
||||
if (executeOrderNumber != null){
|
||||
ExecuteOrder executeOrder = executeOrderMapper.selectOne(new LambdaQueryWrapper<ExecuteOrder>().eq(ExecuteOrder::getGoodsNumber, executeOrderNumber));
|
||||
executeOrder.setInvoiceStatus(1);
|
||||
executeOrder.setInvoiceDate(new Date());
|
||||
executeOrderMapper.updateById(executeOrder);
|
||||
// pictureUrl="123";
|
||||
executeOrderMapper.updateTmsOrderImage(executeOrderNumber,pictureUrl);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -156,7 +156,10 @@ public class ExecuteOrderDTO extends BaseVOEntity{
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
private Date invoiceEndTime;
|
||||
|
||||
@ApiModelProperty("发票编号")
|
||||
private String invoiceNumber;
|
||||
|
||||
@ApiModelProperty("车次")
|
||||
private Integer trainNo;
|
||||
|
||||
}
|
||||
}
|
||||
@@ -18,27 +18,20 @@ spring:
|
||||
discovery:
|
||||
# server-addr: 127.0.0.1:8848
|
||||
# 线上测试环境配置 容器名+端口号
|
||||
server-addr: 10.33.0.129:6010
|
||||
# server-addr: 10.102.192.30:6848
|
||||
# username: nacos
|
||||
# password: manhuoda@2023
|
||||
# server-addr: 10.33.0.129:6010
|
||||
server-addr: 10.102.192.30:6848
|
||||
username: nacos
|
||||
password: manhuoda@2023
|
||||
config:
|
||||
# server-addr: 127.0.0.1:8848
|
||||
# 线上测试环境配置 容器名+端口号
|
||||
server-addr: 10.33.0.129:6010
|
||||
# server-addr: 10.102.192.30:6848
|
||||
# username: nacos
|
||||
# password: manhuoda@2023
|
||||
# server-addr: 10.33.0.129:6010
|
||||
server-addr: 10.102.192.30:6848
|
||||
username: nacos
|
||||
password: manhuoda@2023
|
||||
#线上正式环境
|
||||
# server-addr: 10.102.192.105:6848
|
||||
# 锁定server端的配置文件(读取它的配置项)
|
||||
namespace: # 命名空间id
|
||||
group: DEFAULT_GROUP # 默认分组就是DEFAULT_GROUP,如果使用默认分组可以不配置
|
||||
file-extension: yml #默认properties
|
||||
|
||||
# GW推送配置
|
||||
gw:
|
||||
push:
|
||||
url: http://10.33.0.100/nagu-erp-api/transfer/pushData
|
||||
verify-key1: FuDjK3iuftzwf8kWJ44DDZJ9icZmL9Ee4Valv8Qz6VfsdW60fNEzNSEtrKlUr6OI
|
||||
verify-key2: ESLuxAmB6VXCgbqP1eFzxTPVRagkQ62BUkfhElrgQ6XmE/g2reHVflY/SiCSU7JD
|
||||
file-extension: yml #默认properties
|
||||
@@ -44,7 +44,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
and eo.CREATE_TIME >= #{createStartTime}
|
||||
</if>
|
||||
<if test="invoiceStatus != null">
|
||||
and eo.INVOICE_Status = #{invoiceStatus}
|
||||
and eo.INVOICE_STATUS = #{invoiceStatus}
|
||||
</if>
|
||||
<if test="invoiceNumber != null and invoiceNumber != ''">
|
||||
and eo.INVOICE_NUMBER like concat('%', #{invoiceNumber}, '%')
|
||||
</if>
|
||||
<if test="createEndTime != null">
|
||||
and eo.CREATE_TIME <= #{createEndTime} + 1 - 1/86400
|
||||
@@ -105,6 +108,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
|
||||
</where>
|
||||
</sql>
|
||||
<update id="updateTmsOrderImage">
|
||||
UPDATE NGWL_TEST_WLHY.TMS_TRANSPORT_NOTE
|
||||
SET UNLOAD_IMAGE = #{pictureUrl},
|
||||
UNLOAD_TIME = NOW(),
|
||||
RECEIPT_TIME = NOW()
|
||||
WHERE TRANSPORTATION_NUMBER IN (
|
||||
SELECT GOODS_NUMBER
|
||||
FROM NGWL_TEST_WLHY.TMS_ORDER
|
||||
WHERE EXECUTE_ORDER_NUMBER = #{executeOrderNumber}
|
||||
)
|
||||
</update>
|
||||
|
||||
<select id="queryList" parameterType="com.mhd.oms.domain.executeOrder.repository.todo.ExecuteOrderDO" resultMap="ExecuteOrderResult">
|
||||
<include refid="selectExecuteOrderPo"/>
|
||||
|
||||
+1
-1
@@ -61,6 +61,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
</select>
|
||||
|
||||
<update id="updateW">
|
||||
update NGWL_TEST_WMS.DELIVERY_DETAILS_LINK set RETURN_ORDER_NUMBER = #{returnOrderNumber} where ORDER_NUMBER = #{ordernumber}
|
||||
update NGWL_TEST_WMS.DELIVERY_DETAILS_LINK set RETURN_ORDER_NUMBER = #{returnOrderNumber} where ORDER_NUMBER = #{orderNumber}
|
||||
</update>
|
||||
</mapper>
|
||||
+22
-20
@@ -573,12 +573,15 @@ public class VehicleApplicationService {
|
||||
if (! "200".equals(String.valueOf(userInfoResult.get("code")))) {
|
||||
throw new ServiceException("用户信息获取失败: " + userInfoResult.get("msg"));
|
||||
}
|
||||
UserDriverPo userPo = JSONUtil.toBean(JSONUtil.toJsonStr(userInfoResult.get("data")),
|
||||
UserDriverPo.class);
|
||||
vehicle.setUserName(userPo.getUserName());
|
||||
vehicle.setUserPhone(userPo.getUserPhone());
|
||||
// 司机数据可能不存在(用户尚未在用户中台完成注册),此时使用车辆表单携带的用户信息
|
||||
if (ObjectUtil.isNotNull(userInfoResult.get("data"))) {
|
||||
UserDriverPo userPo = JSONUtil.toBean(JSONUtil.toJsonStr(userInfoResult.get("data")),
|
||||
UserDriverPo.class);
|
||||
vehicle.setUserName(userPo.getUserName());
|
||||
vehicle.setUserPhone(userPo.getUserPhone());
|
||||
}
|
||||
|
||||
List<String> roleCodeList;
|
||||
List<String> roleCodeList = new ArrayList<>();
|
||||
AjaxResult<?> roleListAjaxResult = userServiceFeign.getRoleListByUserId(vehicle.getUserId());
|
||||
if ("200".equals(String.valueOf(roleListAjaxResult.get("code"))) && ObjectUtil.isNotNull(
|
||||
roleListAjaxResult.get("data"))) {
|
||||
@@ -586,8 +589,6 @@ public class VehicleApplicationService {
|
||||
RolePO.class);
|
||||
if (CollUtil.isNotEmpty(rolePOS)) {
|
||||
roleCodeList = rolePOS.stream().map(RolePO :: getRoleCode).collect(Collectors.toList());
|
||||
} else {
|
||||
throw new ServiceException("账号未授权角色信息!");
|
||||
}
|
||||
} else {
|
||||
throw new ServiceException("获取用户角色列表失败: " + roleListAjaxResult.get("msg"));
|
||||
@@ -865,12 +866,14 @@ public class VehicleApplicationService {
|
||||
if (! "200".equals(String.valueOf(userInfoResult.get("code")))) {
|
||||
throw new ServiceException("用户信息获取失败: " + userInfoResult.get("msg"));
|
||||
}
|
||||
UserDriverPo userPo = JSONUtil.toBean(JSONUtil.toJsonStr(userInfoResult.get("data")),
|
||||
UserDriverPo.class);
|
||||
vehicle.setUserName(userPo.getUserName());
|
||||
vehicle.setUserPhone(userPo.getUserPhone());
|
||||
if (ObjectUtil.isNotNull(userInfoResult.get("data"))) {
|
||||
UserDriverPo userPo = JSONUtil.toBean(JSONUtil.toJsonStr(userInfoResult.get("data")),
|
||||
UserDriverPo.class);
|
||||
vehicle.setUserName(userPo.getUserName());
|
||||
vehicle.setUserPhone(userPo.getUserPhone());
|
||||
}
|
||||
|
||||
List<String> roleCodeList;
|
||||
List<String> roleCodeList = new ArrayList<>();
|
||||
AjaxResult<?> roleListAjaxResult = userServiceFeign.getRoleListByUserId(vehicle.getUserId());
|
||||
if ("200".equals(String.valueOf(roleListAjaxResult.get("code"))) && ObjectUtil.isNotNull(
|
||||
roleListAjaxResult.get("data"))) {
|
||||
@@ -878,8 +881,6 @@ public class VehicleApplicationService {
|
||||
RolePO.class);
|
||||
if (CollUtil.isNotEmpty(rolePOS)) {
|
||||
roleCodeList = rolePOS.stream().map(RolePO :: getRoleCode).collect(Collectors.toList());
|
||||
} else {
|
||||
throw new ServiceException("账号未授权角色信息!");
|
||||
}
|
||||
} else {
|
||||
throw new ServiceException("获取用户角色列表失败: " + roleListAjaxResult.get("msg"));
|
||||
@@ -1935,10 +1936,13 @@ public class VehicleApplicationService {
|
||||
if (! "200".equals(String.valueOf(info.get("code")))) {
|
||||
throw new ServiceException("用户信息获取失败");
|
||||
}
|
||||
UserDriverPo userPo = JSONObject.parseObject(JSONObject.toJSONString(info.get("data")),
|
||||
UserDriverPo.class);
|
||||
vehicle.setUserName(userPo.getUserName());
|
||||
vehicle.setUserPhone(userPo.getUserPhone());
|
||||
// 司机数据可能不存在(用户尚未在用户中台完成注册),此时使用车辆表单携带的用户信息
|
||||
if (ObjectUtil.isNotNull(info.get("data"))) {
|
||||
UserDriverPo userPo = JSONObject.parseObject(JSONObject.toJSONString(info.get("data")),
|
||||
UserDriverPo.class);
|
||||
vehicle.setUserName(userPo.getUserName());
|
||||
vehicle.setUserPhone(userPo.getUserPhone());
|
||||
}
|
||||
List<String> roleCodeList = new ArrayList<>();
|
||||
AjaxResult roleListAjaxResult = userServiceFeign.getRoleListByUserId(vehicle.getUserId());
|
||||
if ("200".equals(String.valueOf(roleListAjaxResult.get("code"))) && ObjectUtil.isNotNull(
|
||||
@@ -1948,8 +1952,6 @@ public class VehicleApplicationService {
|
||||
if (rolePOS != null && ! rolePOS.isEmpty()) {
|
||||
roleCodeList.addAll(
|
||||
rolePOS.stream().map(RolePO :: getRoleCode).collect(Collectors.toList()));
|
||||
} else {
|
||||
throw new ServiceException("账号未授权角色信息!");
|
||||
}
|
||||
}
|
||||
if (! roleCodeList.contains(RoleEnum.DRIVER.getCode())) {
|
||||
|
||||
@@ -20,10 +20,10 @@ spring:
|
||||
discovery:
|
||||
# server-addr: 127.0.0.1:8848
|
||||
# 线上测试环境配置使用ip+端口号
|
||||
# server-addr: 10.33.0.129:6010
|
||||
server-addr: 10.102.192.31:6848
|
||||
username: nacos
|
||||
password: manhuoda@2023
|
||||
server-addr: 10.33.0.129:6010
|
||||
# server-addr: 10.102.192.31:6848
|
||||
# username: nacos
|
||||
# password: manhuoda@2023
|
||||
#线上正式环境
|
||||
# server-addr: 10.102.192.31:6848
|
||||
# username: nacos
|
||||
@@ -33,14 +33,14 @@ spring:
|
||||
config:
|
||||
# server-addr: 127.0.0.1:8848
|
||||
# 线上测试环境配置使用ip+端口号
|
||||
server-addr: 10.102.192.31:6848
|
||||
username: nacos
|
||||
password: manhuoda@2023
|
||||
# server-addr: 10.102.192.31:6848
|
||||
# username: nacos
|
||||
# password: manhuoda@2023
|
||||
#线上正式环境
|
||||
# server-addr: 10.102.192.31:6848
|
||||
# username: nacos
|
||||
# password: manhuoda@2023
|
||||
# server-addr: 10.33.0.129:6010
|
||||
server-addr: 10.33.0.129:6010
|
||||
#线上正式环境
|
||||
# server-addr: 10.102.192.105:6848
|
||||
group: DEFAULT_GROUP # 默认分组就是DEFAULT_GROUP,如果使用默认分组可以不配置
|
||||
|
||||
+11
-1
@@ -227,4 +227,14 @@ public class MaterialBaseInfo extends BaseVOEntity {
|
||||
@Excel(name = "毛重(kg)")
|
||||
private BigDecimal grossWeight;
|
||||
|
||||
}
|
||||
@ApiModelProperty("保额")
|
||||
@Excel(name = "保额")
|
||||
private BigDecimal insureAmount;
|
||||
|
||||
@ApiModelProperty(name = "收费标准")
|
||||
private String chargeStandard;
|
||||
|
||||
@ApiModelProperty(name = "单位")
|
||||
private String unit;
|
||||
|
||||
}
|
||||
+8
@@ -274,5 +274,13 @@ public class MaterialBaseInfoPO extends BaseVOEntity {
|
||||
|
||||
@ApiModelProperty(name = "推送人名称")
|
||||
private String pushByName;
|
||||
@ApiModelProperty("保额")
|
||||
@Excel(name = "保额")
|
||||
private BigDecimal insureAmount;
|
||||
|
||||
@ApiModelProperty(name = "收费标准")
|
||||
private String chargeStandard;
|
||||
|
||||
@ApiModelProperty(name = "单位")
|
||||
private String unit;
|
||||
}
|
||||
+10
-1
@@ -250,4 +250,13 @@ public class MaterialBaseInfoDO extends BaseVOEntity {
|
||||
|
||||
@ApiModelProperty("更新时间止")
|
||||
private String updateTimeEnd;
|
||||
}
|
||||
@ApiModelProperty("保额")
|
||||
@Excel(name = "保额")
|
||||
private BigDecimal insureAmount;
|
||||
|
||||
@ApiModelProperty(name = "收费标准")
|
||||
private String chargeStandard;
|
||||
|
||||
@ApiModelProperty(name = "单位")
|
||||
private String unit;
|
||||
}
|
||||
+10
-1
@@ -302,4 +302,13 @@ public class MaterialBaseInfoDTO extends BaseVOEntity {
|
||||
|
||||
@ApiModelProperty(name = "推送人名称")
|
||||
private String pushByName;
|
||||
}
|
||||
@ApiModelProperty("保额")
|
||||
@Excel(name = "保额")
|
||||
private BigDecimal insureAmount;
|
||||
|
||||
@ApiModelProperty(name = "收费标准")
|
||||
private String chargeStandard;
|
||||
|
||||
@ApiModelProperty(name = "单位")
|
||||
private String unit;
|
||||
}
|
||||
@@ -69,6 +69,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
and (operators_name IS NULL OR operators_name = '')
|
||||
</sql>
|
||||
|
||||
<!-- 任务大厅 tabType=2:排除 PC 端已处理/已指派的关联业务单(delive_task 作业人仍为空时,业务单可能已在 PC 作业) -->
|
||||
|
||||
|
||||
<sql id="selectDeliveTaskPo1">
|
||||
<where>
|
||||
del_flag = 1
|
||||
|
||||
@@ -64,6 +64,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="pushBy" column="push_by" />
|
||||
<result property="grossWeight" column="gross_weight" />
|
||||
<result property="pushByName" column="push_by_name" />
|
||||
<result property="unit" column="unit" />
|
||||
<result property="insureAmount" column="insure_amount" />
|
||||
<result property="chargeStandard" column="charge_standard" />
|
||||
</resultMap>
|
||||
|
||||
|
||||
@@ -72,7 +75,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
material_classify_name, a.material_type, a.material_type_name, a.pack_id, a.pack_code, a.pack_name, a.unit_code, a.unit_name, a.brand_id, a.brand_code, a.brand_name, a.shelf_life, a.weight_limit, a.volume_limit, a.material_shape,
|
||||
material_shape_name, a.material_size, a.material_length, a.material_width, a.material_height, a.remark, a.nullify, a.create_time, a.create_by, a.create_by_name, a.update_time, a.update_by, a.update_by_name, a.del_flag, a.common,
|
||||
sku_code, a.unit_price, a.currency, a.origin_country, a.hs_code, a.declaration_unit, a.statutory_unit, a.statutory_second_unit, a.copy_code,
|
||||
a.push_status,a.push_time,a.push_by,a.goods_type,a.gross_weight,a.push_by_name,
|
||||
a.push_status,a.push_time,a.push_by,a.goods_type,a.gross_weight,a.push_by_name,a.unit,a.INSURE_AMOUNT,a.CHARGE_STANDARD,
|
||||
specification_model as specification_model,nvl(b.stock_qty,0) as stock_quantity from material_base_info a left join (
|
||||
select material_base_info_id, sum(INVENTORY_QUANTITY) as stock_qty from MATERIAL_INVENTORY group by material_base_info_id
|
||||
) b on a.material_base_info_id = b.material_base_info_id
|
||||
|
||||
Reference in New Issue
Block a user