Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
+3
@@ -160,6 +160,9 @@ public class ContractManage extends BaseVOEntity{
|
|||||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
private Date paymentDate;
|
private Date paymentDate;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "出账天数")
|
||||||
|
private Integer billDays;
|
||||||
|
|
||||||
@ApiModelProperty(name = "主体类型(1-货主,2-客户,3-承运商)")
|
@ApiModelProperty(name = "主体类型(1-货主,2-客户,3-承运商)")
|
||||||
private Integer principalType;
|
private Integer principalType;
|
||||||
|
|
||||||
|
|||||||
+3
@@ -169,6 +169,9 @@ public class ContractManagePO extends BaseVOEntity{
|
|||||||
@JsonFormat(pattern = "d", timezone = "GMT+8")
|
@JsonFormat(pattern = "d", timezone = "GMT+8")
|
||||||
private Date paymentDate;
|
private Date paymentDate;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "出账天数")
|
||||||
|
private Integer billDays;
|
||||||
|
|
||||||
@ApiModelProperty(name = "主体类型(1-货主,2-客户,3-承运商)")
|
@ApiModelProperty(name = "主体类型(1-货主,2-客户,3-承运商)")
|
||||||
private Integer principalType;
|
private Integer principalType;
|
||||||
|
|
||||||
|
|||||||
+3
@@ -199,6 +199,9 @@ public class ContractManageDO extends BaseVOEntity{
|
|||||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
private Date paymentDate;
|
private Date paymentDate;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "出账天数")
|
||||||
|
private Integer billDays;
|
||||||
|
|
||||||
@ApiModelProperty(name = "主体类型(1-货主,2-客户,3-承运商)")
|
@ApiModelProperty(name = "主体类型(1-货主,2-客户,3-承运商)")
|
||||||
private Integer principalType;
|
private Integer principalType;
|
||||||
|
|
||||||
|
|||||||
+3
@@ -190,6 +190,9 @@ public class ContractManageDTO extends BaseVOEntity{
|
|||||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
private Date paymentDate;
|
private Date paymentDate;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "出账天数")
|
||||||
|
private Integer billDays;
|
||||||
|
|
||||||
@ApiModelProperty(name = "主体类型(1-货主,2-客户,3-承运商)")
|
@ApiModelProperty(name = "主体类型(1-货主,2-客户,3-承运商)")
|
||||||
private Integer principalType;
|
private Integer principalType;
|
||||||
|
|
||||||
|
|||||||
+46
@@ -1,7 +1,12 @@
|
|||||||
package com.mhd.wms.application.service.materialBaseInfo;
|
package com.mhd.wms.application.service.materialBaseInfo;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.mhd.common.core.web.domain.AjaxResult;
|
||||||
import com.mhd.common.security.utils.SecurityUtils;
|
import com.mhd.common.security.utils.SecurityUtils;
|
||||||
|
import com.mhd.system.api.SystemServiceFeign;
|
||||||
|
import com.mhd.system.api.domain.BatchFeignPO;
|
||||||
import com.mhd.system.api.model.LoginUser;
|
import com.mhd.system.api.model.LoginUser;
|
||||||
import com.mhd.wms.domain.materialBarCode.service.MaterialBarCodeDomainService;
|
import com.mhd.wms.domain.materialBarCode.service.MaterialBarCodeDomainService;
|
||||||
import com.mhd.wms.domain.materialBaseInfo.repository.po.MaterialBaseInfoPO;
|
import com.mhd.wms.domain.materialBaseInfo.repository.po.MaterialBaseInfoPO;
|
||||||
@@ -14,6 +19,8 @@ import com.mhd.wms.domain.materialGoodsRule.repository.mapper.MaterialGoodsRuleM
|
|||||||
import com.mhd.wms.domain.materialGoodsRule.repository.po.MaterialGoodsRulePO;
|
import com.mhd.wms.domain.materialGoodsRule.repository.po.MaterialGoodsRulePO;
|
||||||
import com.mhd.wms.domain.materialGoodsRule.repository.todo.MaterialGoodsRuleDO;
|
import com.mhd.wms.domain.materialGoodsRule.repository.todo.MaterialGoodsRuleDO;
|
||||||
import com.mhd.wms.domain.materialGoodsRule.service.MaterialGoodsRuleDomainService;
|
import com.mhd.wms.domain.materialGoodsRule.service.MaterialGoodsRuleDomainService;
|
||||||
|
import com.mhd.wms.domain.materialInventoryWarning.repository.facade.IMaterialInventoryWarningService;
|
||||||
|
import com.mhd.wms.domain.materialInventoryWarning.repository.po.MaterialInventoryWarningPO;
|
||||||
import com.mhd.wms.domain.materialInventoryWarning.service.MaterialInventoryWarningDomainService;
|
import com.mhd.wms.domain.materialInventoryWarning.service.MaterialInventoryWarningDomainService;
|
||||||
import com.mhd.wms.domain.materialWarehouseControl.repository.todo.MaterialWarehouseControlDO;
|
import com.mhd.wms.domain.materialWarehouseControl.repository.todo.MaterialWarehouseControlDO;
|
||||||
import com.mhd.wms.domain.materialWarehouseControl.service.MaterialWarehouseControlDomainService;
|
import com.mhd.wms.domain.materialWarehouseControl.service.MaterialWarehouseControlDomainService;
|
||||||
@@ -47,12 +54,18 @@ public class MaterialBaseInfoApplicationService {
|
|||||||
private MaterialWarehouseControlDomainService materialWarehouseControlDomainService;
|
private MaterialWarehouseControlDomainService materialWarehouseControlDomainService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private MaterialInventoryWarningDomainService materialInventoryWarningDomainService;
|
private MaterialInventoryWarningDomainService materialInventoryWarningDomainService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IMaterialInventoryWarningService materialInventoryWarningService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private MaterialBarCodeDomainService materialBarCodeDomainService;
|
private MaterialBarCodeDomainService materialBarCodeDomainService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private MaterialGoodsRuleMapper materialGoodsRuleMapper;
|
private MaterialGoodsRuleMapper materialGoodsRuleMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SystemServiceFeign systemServiceFeign;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页查询物料基础信息列表
|
* 分页查询物料基础信息列表
|
||||||
*/
|
*/
|
||||||
@@ -116,7 +129,40 @@ public class MaterialBaseInfoApplicationService {
|
|||||||
if (materialGoodsRules != null){
|
if (materialGoodsRules != null){
|
||||||
MaterialGoodsRulePO materialGoodsRulePO = new MaterialGoodsRulePO();
|
MaterialGoodsRulePO materialGoodsRulePO = new MaterialGoodsRulePO();
|
||||||
BeanUtils.copyProperties(materialGoodsRules,materialGoodsRulePO);
|
BeanUtils.copyProperties(materialGoodsRules,materialGoodsRulePO);
|
||||||
|
// 如果批次ID不为空,查询批次信息并填充批次名称和编码
|
||||||
|
if (materialGoodsRulePO.getBatchId() != null) {
|
||||||
|
try {
|
||||||
|
AjaxResult ajaxResult = systemServiceFeign.getBatchInfoByBatchId(materialGoodsRulePO.getBatchId());
|
||||||
|
if (ajaxResult != null && "200".equals(String.valueOf(ajaxResult.get("code")))) {
|
||||||
|
BatchFeignPO batchFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), BatchFeignPO.class);
|
||||||
|
if (batchFeignPO != null) {
|
||||||
|
materialGoodsRulePO.setBatchCode(batchFeignPO.getBatchCode());
|
||||||
|
materialGoodsRulePO.setBatchName(batchFeignPO.getBatchName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.warn("获取批次信息失败,批次ID:{},错误:{}", materialGoodsRulePO.getBatchId(), e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
materialBaseInfoPO.setMaterialGoodsRule(materialGoodsRulePO);
|
materialBaseInfoPO.setMaterialGoodsRule(materialGoodsRulePO);
|
||||||
|
// 将批次信息填充到根级别,方便前端显示
|
||||||
|
if (materialGoodsRulePO.getBatchId() != null) {
|
||||||
|
materialBaseInfoPO.setBatchId(materialGoodsRulePO.getBatchId());
|
||||||
|
materialBaseInfoPO.setBatchCode(materialGoodsRulePO.getBatchCode());
|
||||||
|
materialBaseInfoPO.setBatchName(materialGoodsRulePO.getBatchName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 填充库存预警信息
|
||||||
|
List<MaterialInventoryWarningPO> materialInventoryWarningList = materialInventoryWarningService.getInfoByMaterialBaseInfoIds(materialBaseInfoPO.getMaterialBaseInfoId());
|
||||||
|
materialBaseInfoPO.setMaterialInventoryWarningList(materialInventoryWarningList);
|
||||||
|
// 统计库存预警和临期预警数量
|
||||||
|
if (!CollectionUtils.isEmpty(materialInventoryWarningList)) {
|
||||||
|
materialBaseInfoPO.setInventoryWarningCount(materialInventoryWarningList.size());
|
||||||
|
// 临期预警需要根据业务逻辑计算,这里先设置为0
|
||||||
|
materialBaseInfoPO.setExpirationWarningCount(0);
|
||||||
|
} else {
|
||||||
|
materialBaseInfoPO.setInventoryWarningCount(0);
|
||||||
|
materialBaseInfoPO.setExpirationWarningCount(0);
|
||||||
}
|
}
|
||||||
// 将物料分类的List转换为逗号分隔的字符串,用于导出
|
// 将物料分类的List转换为逗号分隔的字符串,用于导出
|
||||||
if (!CollectionUtils.isEmpty(materialBaseInfoPO.getMaterialClassifyCode())) {
|
if (!CollectionUtils.isEmpty(materialBaseInfoPO.getMaterialClassifyCode())) {
|
||||||
|
|||||||
+9
-1
@@ -1002,7 +1002,15 @@ public class StockReceiptOrderApplicationService {
|
|||||||
if (receiptMaterialDetailPO == null){
|
if (receiptMaterialDetailPO == null){
|
||||||
throw new ServiceException("物料明细不存在");
|
throw new ServiceException("物料明细不存在");
|
||||||
}
|
}
|
||||||
if (receiptMaterialDetailDO.getReceiptQuantity().compareTo(BigDecimal.ZERO) == 0){
|
List<ReceiptMaterialDetailDO> children = receiptMaterialDetailDO.getChildren();
|
||||||
|
BigDecimal childrenTotalQuantity = BigDecimal.ZERO;
|
||||||
|
if (!CollectionUtils.isEmpty(children)) {
|
||||||
|
childrenTotalQuantity = children.stream()
|
||||||
|
.map(ReceiptMaterialDetailDO::getReceiptQuantity)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
}
|
||||||
|
if (receiptMaterialDetailDO.getReceiptQuantity().compareTo(BigDecimal.ZERO) == 0 && childrenTotalQuantity.compareTo(BigDecimal.ZERO) == 0){
|
||||||
//未进行收货直接跳过
|
//未进行收货直接跳过
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
+20
@@ -223,4 +223,24 @@ public class MaterialBaseInfoPO extends BaseVOEntity {
|
|||||||
@ApiModelProperty("规格型号")
|
@ApiModelProperty("规格型号")
|
||||||
private String specificationModel;
|
private String specificationModel;
|
||||||
|
|
||||||
|
@ApiModelProperty("批次ID")
|
||||||
|
@Excel(name = "批次ID")
|
||||||
|
private Long batchId;
|
||||||
|
|
||||||
|
@ApiModelProperty("批次编码")
|
||||||
|
@Excel(name = "批次编码")
|
||||||
|
private String batchCode;
|
||||||
|
|
||||||
|
@ApiModelProperty("批次名称")
|
||||||
|
@Excel(name = "批次名称")
|
||||||
|
private String batchName;
|
||||||
|
|
||||||
|
@ApiModelProperty("库存预警数量")
|
||||||
|
@Excel(name = "库存预警数量")
|
||||||
|
private Integer inventoryWarningCount;
|
||||||
|
|
||||||
|
@ApiModelProperty("临期预警数量")
|
||||||
|
@Excel(name = "临期预警数量")
|
||||||
|
private Integer expirationWarningCount;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+3
@@ -214,4 +214,7 @@ public class MaterialBaseInfoDO extends BaseVOEntity {
|
|||||||
|
|
||||||
@ApiModelProperty("规格型号")
|
@ApiModelProperty("规格型号")
|
||||||
private String specificationModel;
|
private String specificationModel;
|
||||||
|
|
||||||
|
@ApiModelProperty("批次ID")
|
||||||
|
private Long batchId;
|
||||||
}
|
}
|
||||||
|
|||||||
+3
@@ -217,4 +217,7 @@ public class MaterialBaseInfoDTO extends BaseVOEntity {
|
|||||||
|
|
||||||
@ApiModelProperty("规格型号")
|
@ApiModelProperty("规格型号")
|
||||||
private String specificationModel;
|
private String specificationModel;
|
||||||
|
|
||||||
|
@ApiModelProperty("批次ID")
|
||||||
|
private Long batchId;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -113,11 +113,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<if test="barCode != null and barCode != ''">
|
<if test="barCode != null and barCode != ''">
|
||||||
and bar_code like concat('%',#{barCode},'%')
|
and bar_code like concat('%',#{barCode},'%')
|
||||||
</if>
|
</if>
|
||||||
<if test="materialClassifyCode != null and materialClassifyCode != ''">
|
<if test="materialClassifyCode != null and materialClassifyCode.size() > 0">
|
||||||
and material_classify_code = #{materialClassifyCode}
|
<foreach collection="materialClassifyCode" item="code" open="and (" separator="or" close=")">
|
||||||
|
FIND_IN_SET(#{code}, material_classify_code) > 0
|
||||||
|
</foreach>
|
||||||
</if>
|
</if>
|
||||||
<if test="materialClassifyName != null and materialClassifyName != ''">
|
<if test="materialClassifyName != null and materialClassifyName.size() > 0">
|
||||||
and material_classify_name like concat('%', #{materialClassifyName}, '%')
|
<foreach collection="materialClassifyName" item="name" open="and (" separator="or" close=")">
|
||||||
|
material_classify_name like concat('%', #{name}, '%')
|
||||||
|
</foreach>
|
||||||
</if>
|
</if>
|
||||||
<if test="materialType != null and materialType != ''">
|
<if test="materialType != null and materialType != ''">
|
||||||
and material_type = #{materialType}
|
and material_type = #{materialType}
|
||||||
@@ -186,6 +190,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
or
|
or
|
||||||
instr(bar_code, #{compoundOrQuery}) > 0
|
instr(bar_code, #{compoundOrQuery}) > 0
|
||||||
)
|
)
|
||||||
|
</if>
|
||||||
|
<if test="batchId != null">
|
||||||
|
and exists (
|
||||||
|
select 1 from material_goods_rule mgr
|
||||||
|
where mgr.material_base_info_id = material_base_info.material_base_info_id
|
||||||
|
and mgr.batch_id = #{batchId}
|
||||||
|
and mgr.del_flag = 1
|
||||||
|
)
|
||||||
</if>
|
</if>
|
||||||
<!-- 传 1:只查公共 , 2:只查自己的 ,3:公共的和自己的 -->
|
<!-- 传 1:只查公共 , 2:只查自己的 ,3:公共的和自己的 -->
|
||||||
<choose>
|
<choose>
|
||||||
@@ -223,11 +235,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<if test="barCode != null and barCode != ''">
|
<if test="barCode != null and barCode != ''">
|
||||||
and b.bar_code = #{barCode}
|
and b.bar_code = #{barCode}
|
||||||
</if>
|
</if>
|
||||||
<if test="materialClassifyCode != null and materialClassifyCode != ''">
|
<if test="materialClassifyCode != null and materialClassifyCode.size() > 0">
|
||||||
and b.material_classify_code = #{materialClassifyCode}
|
<foreach collection="materialClassifyCode" item="code" open="and (" separator="or" close=")">
|
||||||
|
FIND_IN_SET(#{code}, b.material_classify_code) > 0
|
||||||
|
</foreach>
|
||||||
</if>
|
</if>
|
||||||
<if test="materialClassifyName != null and materialClassifyName != ''">
|
<if test="materialClassifyName != null and materialClassifyName.size() > 0">
|
||||||
and b.material_classify_name like concat('%', #{materialClassifyName}, '%')
|
<foreach collection="materialClassifyName" item="name" open="and (" separator="or" close=")">
|
||||||
|
b.material_classify_name like concat('%', #{name}, '%')
|
||||||
|
</foreach>
|
||||||
</if>
|
</if>
|
||||||
<if test="materialType != null and materialType != ''">
|
<if test="materialType != null and materialType != ''">
|
||||||
and b.material_type = #{materialType}
|
and b.material_type = #{materialType}
|
||||||
|
|||||||
Reference in New Issue
Block a user