add:订单新增生产数量等字段;

fix:修复相同订单号相同品目相同交期合并订单无订单号时的bug。
This commit is contained in:
2023-10-08 13:25:08 +08:00
parent 418b40f683
commit ee24ae7c2a
9 changed files with 244 additions and 139 deletions

View File

@@ -261,4 +261,19 @@ public class MpsSaleOrder implements Serializable{
*/
@ApiModelProperty(value = "/**后段提交标记*/")
private String behind_submit_flag;
/**
* 需生产数量
*/
@ApiModelProperty(value = "/**需生产数量*/")
private BigDecimal need_product_qty;
/**
* 刻字数量
*/
@ApiModelProperty(value = "/**刻字数量*/")
private BigDecimal lettering_qty;
/**
* 刻字数量
*/
@ApiModelProperty(value = "/**入库数量*/")
private BigDecimal in_storage_qty;
}

View File

@@ -9,6 +9,8 @@
DATE_FORMAT(der.behind_plandeliver_date, '%Y-%m-%d' ) AS behindPlandeliverDate,
DATE_FORMAT(der.create_time, '%Y-%m-%d %H:%i:%s' ) AS createTime,
DATE_FORMAT(der.aps_update_time, '%Y-%m-%d %H:%i:%s' ) AS apsUpdateTime,
DATE_FORMAT(DATE_ADD(der.plandeliver_date, INTERVAL 7 DAY), '%Y-%m-%d') AS order_date,
DATE_FORMAT(DATE_ADD(der.plandeliver_date, INTERVAL 3 DAY), '%Y-%m-%d') AS warehousing_date,
mater.material_name
FROM
mps_sale_order der
@@ -22,13 +24,13 @@
and der.status = #{query.status}
</if>
<if test="query.sale_type != null">
and der.sale_type >= #{query.sale_type}
and der.sale_type = #{query.sale_type}
</if>
<if test="query.create_mode != null">
and der.create_mode >= #{query.create_mode}
and der.create_mode = #{query.create_mode}
</if>
<if test="query.cust_code != null">
and der.cust_code >= #{query.cust_code}
and der.cust_code = #{query.cust_code}
</if>
<if test="query.start_time != null and query.start_time != ''">
and der.create_time >= #{query.start_time}

View File

@@ -160,6 +160,9 @@ public class MpsSaleOrderServiceImpl extends ServiceImpl<MpsSaleOrderMapper,MpsS
@Override
public void update(JSONObject form) {
MpsSaleOrder mpsSaleOrder = form.toJavaObject(MpsSaleOrder.class);
mpsSaleOrder.setUpdate_id(SecurityUtils.getCurrentUserId());
mpsSaleOrder.setUpdate_name(SecurityUtils.getCurrentUsername());
mpsSaleOrder.setUpdate_time(DateUtil.now());
this.updateById(mpsSaleOrder);
}
@@ -226,20 +229,33 @@ public class MpsSaleOrderServiceImpl extends ServiceImpl<MpsSaleOrderMapper,MpsS
if(StringUtils.isBlank(col)) {
throw new BadRequestException("销售单号不能为空");
}
if(col.equals("660697961")) {
int is = 0;
}
mpsSaleOrder.setSale_code(col);
}
if(j == 1) {
if(StringUtils.isBlank(col)) {
throw new BadRequestException("合同号不能为空");
}
// if(StringUtils.isBlank(col)) {
// throw new BadRequestException("合同号不能为空");
// }
mpsSaleOrder.setContract_code(col);
}
if(j == 2) {
mpsSaleOrder.setMaterial_code(col);
}
if(j == 3) {
if(StringUtils.isBlank(col)) {
throw new BadRequestException("规格名称不能为空");
}
List<MdMeMaterialbase> meMaterialBases = materialbaseService.list(new QueryWrapper<MdMeMaterialbase>().eq("material_spec", col));
List<MdMeMaterialbase> meMaterialBases;
if(StringUtils.isNotBlank(mpsSaleOrder.getMaterial_code())) {
meMaterialBases = materialbaseService.list(new QueryWrapper<MdMeMaterialbase>().eq("material_code", mpsSaleOrder.getMaterial_code()));
}
else{
meMaterialBases = materialbaseService.list(new QueryWrapper<MdMeMaterialbase>().eq("material_spec", col));
}
if(CollectionUtils.isEmpty(meMaterialBases)) {
//如果不是一线物料,就跳过不导入该订单
break;
}
else{
@@ -258,14 +274,14 @@ public class MpsSaleOrderServiceImpl extends ServiceImpl<MpsSaleOrderMapper,MpsS
}
}
}
if(j == 3) {
if(j == 4) {
if(StringUtils.isBlank(col)) {
mpsSaleOrder.setProduct_area("A1");
}
//智能一线,智能三线
mpsSaleOrder.setProduct_area(col.contains("") || col.contains("3") ? "A3" : "A1");
}
if(j == 4) {
if(j == 5) {
if(StringUtils.isBlank(col)) {
throw new BadRequestException("销售数量不能为空");
}
@@ -283,7 +299,7 @@ public class MpsSaleOrderServiceImpl extends ServiceImpl<MpsSaleOrderMapper,MpsS
break;
}
}
if(j == 5) {
if(j == 6) {
if(StringUtils.isBlank(col)) {
throw new BadRequestException("订单交期不能为空");
}
@@ -307,27 +323,30 @@ public class MpsSaleOrderServiceImpl extends ServiceImpl<MpsSaleOrderMapper,MpsS
//后段交期
mpsSaleOrder.setBehind_plandeliver_date(newDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
}
if(j == 6) {
if(j == 7) {
if(StringUtils.isNotBlank(col)) {
mpsSaleOrder.setRawmaterial_name(col);
}
}
if(j == 7) {
if(j == 8) {
if(StringUtils.isNotBlank(col)) {
BigDecimal rateQty = BigDecimal.valueOf(NumberUtils.isNumber(col) ? NumberUtils.toDouble(col) : 0);
mpsSaleOrder.setRate_qty(rateQty);
}
}
if(j == 8) {
if(j == 9) {
if(StringUtils.isNotBlank(col)) {
BigDecimal canuseQty = BigDecimal.valueOf(NumberUtils.isNumber(col) ? NumberUtils.toDouble(col) : 0);
mpsSaleOrder.setCanuse_qty(canuseQty);
}
}
if(j == 9) {
if(j == 10) {
//已完成数量
if(StringUtils.isNotBlank(col)) {
BigDecimal productQty = BigDecimal.valueOf(NumberUtils.isNumber(col) ? NumberUtils.toDouble(col) : 0);
mpsSaleOrder.setProduct_qty(productQty);
//需生产数量
mpsSaleOrder.setNeed_product_qty(mpsSaleOrder.getSale_qty().subtract(productQty));
}
}
}
@@ -337,24 +356,24 @@ public class MpsSaleOrderServiceImpl extends ServiceImpl<MpsSaleOrderMapper,MpsS
int seqNo = orderSeqNoMap.getOrDefault(orderCode, 0) + 1;
orderSeqNoMap.put(orderCode, seqNo);
mpsSaleOrder.setSeq_no(seqNo * 100);
}
OrderQuery orderQuery = new OrderQuery();
orderQuery.setSale_code(mpsSaleOrder.getSale_code());
orderQuery.setStatus(SaleOrderEnum.CREATE.getCode());
List<Map> salesOrders = baseMapper.queryAll(orderQuery);
//相同订单号
if(salesOrders.size() > 0) {
List<Map> salesOrderList = salesOrders.stream().filter(m -> mpsSaleOrder.getSale_code().equals(m.get("sale_code")) && mpsSaleOrder.getMaterial_code().equals(m.get("material_code"))).collect(Collectors.toList());
if(salesOrderList.size() > 0) {
continue;
}
else{
Map maxSeqNoOrder = salesOrders.stream().max(Comparator.comparingInt(m -> (int) m.get("seq_no"))).orElse(null);
int maxSeqNoValue = (int) maxSeqNoOrder.get("seq_no");
mpsSaleOrder.setSeq_no(maxSeqNoValue + 100);
OrderQuery orderQuery = new OrderQuery();
orderQuery.setSale_code(mpsSaleOrder.getSale_code());
orderQuery.setStatus(SaleOrderEnum.CREATE.getCode());
List<Map> salesOrders = baseMapper.queryAll(orderQuery);
//相同订单号
if(salesOrders.size() > 0) {
List<Map> salesOrderList = salesOrders.stream().filter(m -> mpsSaleOrder.getSale_code().equals(m.get("sale_code")) && mpsSaleOrder.getMaterial_code().equals(m.get("material_code"))).collect(Collectors.toList());
if(salesOrderList.size() > 0) {
continue;
}
else{
Map maxSeqNoOrder = salesOrders.stream().max(Comparator.comparingInt(m -> (int) m.get("seq_no"))).orElse(null);
int maxSeqNoValue = (int) maxSeqNoOrder.get("seq_no");
mpsSaleOrder.setSeq_no(maxSeqNoValue + 100);
}
}
mpsSaleOrder.setAps_sale_code(mpsSaleOrder.getSale_code() + "-" + mpsSaleOrder.getSeq_no());
}
mpsSaleOrder.setAps_sale_code(mpsSaleOrder.getSale_code() + "-" + mpsSaleOrder.getSeq_no());
if(CollectionUtils.isEmpty(errorMap)) {
if(mpsSaleOrder.getSale_code() != null) {
data.add(mpsSaleOrder);

View File

@@ -1,15 +1,10 @@
package org.nl.wms.pcs_manage.service.purchase.dao;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
import lombok.EqualsAndHashCode;