Compare commits

...

2 Commits

Author SHA1 Message Date
liuqingkun 984cf84064 Merge remote-tracking branch 'origin/master' 1 month ago
liuqingkun 52c2d6a71c 镀层物料申报修改 1 month ago
  1. 148
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/PlateGoodsApply.java
  2. 6
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/PlateGoodsApplyDetail.java
  3. 22
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/PlateGoodsRecord.java
  4. 6
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/request/PlateGoodsApplySave.java
  5. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/vo/PlateGoodsApplyVo.java
  6. 19
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/controller/PlateGoodsApplyController.java
  7. 9
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/PlateGoodsApplyDetailMapper.java
  8. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/PlateGoodsApplyDetailMapper.xml
  9. 10
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/PlateGoodsApplyMapper.xml
  10. 12
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IPlateGoodsApplyDetailService.java
  11. 11
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IPlateGoodsApplyService.java
  12. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/MoldApplyServiceImpl.java
  13. 12
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsApplyDetailServiceImpl.java
  14. 83
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsApplyServiceImpl.java
  15. 13
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsRecordServiceImpl.java

@ -2,6 +2,7 @@ package org.springblade.desk.order.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springblade.core.mp.base.BaseEntity;
@ -20,159 +21,74 @@ public class PlateGoodsApply extends BaseEntity {
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/**
* 审批人
*/
@TableField(value = "APPROVAL_MAN")
private Long approvalMan;
/**
* 审批时间
*/
@TableField(value = "APPROVAL_TIME")
private Date approvalTime;
/**
* 审批状态
*/
@TableField(value = "APPROVAL_STATUS")
private Integer approvalStatus;
/**
* 审批结果
*/
@TableField(value = "APPROVAL_MEMO")
private String approvalMemo;
/**
* 采购Id
*/
@TableField(value = "BO_ID")
private Long boId;
/**
* 领料单Id
*/
@TableField(value = "BR_ID")
private Long brId;
/**
*
*/
@TableField(value = "AC_ID")
private Long acId;
/**
* 镀层物料额外需求上报ID
*/
@TableField(value = "PGR_ID")
private Long pgrId;
/**
* 需求单号
*/
@TableField(value = "DEMAND_CODE")
private String demandCode;
/**
* 作业中心
*/
@Schema(description = "作业中心ID")
@TableField(value = "WC_ID")
private Long wcId;
/**
* 镀层物料
*/
@Schema(description = "镀层物料编码")
@TableField(value = "GOODS_CODE")
private String goodsCode;
/**
* 镀层物料
*/
@Schema(description = "镀层物料名称")
@TableField(value = "GOODS_NAME")
private String goodsName;
/**
* 物料需求
*/
@TableField(value = "GOODS_DEMAND")
private BigDecimal goodsDemand;
/**
* 上报银钾
*/
@TableField(value = "SILVER_POTASSIUM")
private BigDecimal silverPotassium;
/**
* 银钾系数
*/
@TableField(value = "COEFFICIENT")
private BigDecimal coefficient;
/**
* 已申报定额
*/
@TableField(value = "DECLARED_QUOTA")
private BigDecimal declaredQuota;
/**
* 已申报银钾
*/
@TableField(value = "DECLARED_SILVER")
private BigDecimal declaredSilver;
/**
* 申报状态
*/
@TableField(value = "DECLARED_STATUS")
private Long declaredStatus;
/**
* 物料采购id
*/
@TableField(value = "GOODS_BO_ID")
private Long goodsBoId;
/**
* 银钾采购id
* 审批人
*/
@TableField(value = "COEFFICIENT_BO_ID")
private Long coefficientBoId;
@Schema(description = "审批人")
@TableField(value = "APPROVAL_MAN")
private Long approvalMan;
/**
* 剩余量
* 审批时间
*/
@TableField(value = "SURPLUS")
private BigDecimal surplus;
@Schema(description = "审批时间")
@TableField(value = "APPROVAL_TIME")
private Date approvalTime;
/**
* 上报银钾剩余量
* 审批状态
*/
@TableField(value = "SILVER_POTASSIUM_RESIDUE")
private BigDecimal silverPotassiumResidue;
@Schema(description = "审批状态")
@TableField(value = "APPROVAL_STATUS")
private Integer approvalStatus;
/**
* 本次添加涉及单号
* 审批结果
*/
@TableField(value = "INVOLVING_RECORD_CODE")
private String involvingRecordCode;
@Schema(description = "审批结果")
@TableField(value = "APPROVAL_MEMO")
private String approvalMemo;
/**
* 本次剩余单号余
* 本次申报添加量 = 班组预添加量
*/
@TableField(value = "INVOLVING_SURPLUS")
private String involvingSurplus;
@Schema(description = "本次申报添加量")
@TableField(value = "GOODS_ADD_TOTAL")
private BigDecimal goodsAddTotal;
/**
* 本次关联订单数量
* 本次申报物料需求单总物料需求剩余量 = 可使用定额
*/
@TableField(value = "DETAIL_ORDER_NUM")
private Integer detailOrderNum;
@Schema(description = "本次申报总物料需求剩余量")
@TableField(value = "GOODS_DEMAND_TOTAL")
private BigDecimal goodsDemandTotal;
/**
* 涉及订单要添加的数量
* 本次申报物料需求单已申报定额总量(已添加总量 = 累计结余
*/
@TableField(value = "CODE_NUM")
private String codeNum;
@Schema(description = "已申报定额总量")
@TableField(value = "DECLARED_QUOTA_TOTAL")
private BigDecimal declaredQuotaTotal;
}

@ -25,9 +25,9 @@ public class PlateGoodsApplyDetail extends BaseEntity {
private Long pgaId;
/**
* 生产订单ID
* 镀层物料需求ID
*/
@TableField(value = "YO_ID")
private Long yoId;
@TableField(value = "PGR_ID")
private Long pgrId;
}

@ -56,6 +56,12 @@ public class PlateGoodsRecord extends BaseEntity {
@TableField(value = "SILVER_POTASSIUM")
private BigDecimal silverPotassium;
/**
* 上报银钾剩余量
*/
@TableField(value = "SILVER_POTASSIUM_RESIDUE")
private Double silverPotassiumResidue;
/**
* 银钾系数
*/
@ -89,13 +95,13 @@ public class PlateGoodsRecord extends BaseEntity {
private String approvalMemo;
/**
* 已申报定额
* 已申报定额已添加量
*/
@TableField(value = "DECLARED_QUOTA")
private BigDecimal declaredQuota;
/**
* 已申报银钾
* 已申报银钾定额
*/
@TableField(value = "DECLARED_SILVER")
private BigDecimal declaredSilver;
@ -124,18 +130,6 @@ public class PlateGoodsRecord extends BaseEntity {
@TableField(value = "SURPLUS")
private BigDecimal surplus;
/**
* 上报银钾剩余量
*/
@TableField(value = "SILVER_POTASSIUM_RESIDUE")
private BigDecimal silverPotassiumResidue;
/**
* 本次添加涉及单号
*/
@TableField(value = "INVOLVING_RECORD_CODE")
private String involvingRecordCode;
/**
* 本次关联订单数量
*/

@ -2,6 +2,7 @@ package org.springblade.desk.order.pojo.request;
import lombok.Data;
import org.springblade.desk.order.pojo.entity.AssayContentDetail;
import org.springblade.desk.order.pojo.entity.PlateGoodsApply;
import java.util.List;
@ -12,6 +13,11 @@ import java.util.List;
*/
@Data
public class PlateGoodsApplySave {
/**
* 物料需求申报
*/
PlateGoodsApply apply;
/**
* 化验含量明细
*/

@ -49,5 +49,5 @@ public class PlateGoodsApplyVo extends PlateGoodsApply {
*/
String approvalStatusName;
List<YieldOrderVo> yieldOrderList;
List<PlateGoodsRecordVo> recordVos;
}

@ -16,12 +16,13 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.desk.order.pojo.entity.AssayContentDetail;
import org.springblade.desk.order.pojo.entity.PlateGoodsApply;
import org.springblade.desk.order.pojo.entity.YieldOrder;
import org.springblade.desk.order.pojo.entity.PlateGoodsRecord;
import org.springblade.desk.order.pojo.request.PlateGoodsApplySave;
import org.springblade.desk.order.pojo.vo.PlateGoodsApplyVo;
import org.springblade.desk.order.service.IPlateGoodsApplyDetailService;
import org.springblade.desk.order.service.IPlateGoodsApplyService;
import org.springblade.desk.order.wrapper.PlateGoodsApplyWrapper;
import org.springblade.desk.order.wrapper.YieldOrderWrapper;
import org.springblade.desk.order.wrapper.PlateGoodsRecordWrapper;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@ -39,6 +40,7 @@ import java.util.List;
public class PlateGoodsApplyController extends BladeController {
private final IPlateGoodsApplyService plateGoodsApplyService;
private final IPlateGoodsApplyDetailService plateGoodsApplyDetailService;
/**
* 分页
@ -60,18 +62,18 @@ public class PlateGoodsApplyController extends BladeController {
@GetMapping("/detail")
@Operation(summary = "详情", description = "")
public R<PlateGoodsApplyVo> detail(String id) {
PlateGoodsApply apply = plateGoodsApplyService.getById(id);
PlateGoodsApply apply = plateGoodsApplyService.getById(id);
PlateGoodsApplyVo vo = PlateGoodsApplyWrapper.build().entityVO(apply);
// 查询关联订单列表
List<YieldOrder> yieldOrderList = plateGoodsApplyService.listDetailYieldOrder(apply.getId());
if(Func.isNotEmpty(yieldOrderList)) {
vo.setYieldOrderList(YieldOrderWrapper.build().listVO(yieldOrderList));
List<PlateGoodsRecord> recordList = plateGoodsApplyDetailService.listRecordByApplyId(apply.getId());
if (Func.isNotEmpty(recordList)) {
vo.setRecordVos(PlateGoodsRecordWrapper.build().listVO(recordList));
}
return R.data(vo);
}
}
/**
* 新增
@ -79,9 +81,10 @@ public class PlateGoodsApplyController extends BladeController {
@PostMapping("/save")
@Operation(summary = "新增", description = "")
public R save(@Valid @RequestBody PlateGoodsApplySave saveData) {
PlateGoodsApply apply = saveData.getApply();
List<AssayContentDetail> assayContentDetailList = saveData.getAssayContentDetailList();
List<Long> recordIdList = saveData.getRecordIdList();
plateGoodsApplyService.save(assayContentDetailList, recordIdList);
plateGoodsApplyService.save(apply, assayContentDetailList, recordIdList);
return R.status(true);
}

@ -3,6 +3,7 @@ package org.springblade.desk.order.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.desk.order.pojo.entity.PlateGoodsApplyDetail;
import org.springblade.desk.order.pojo.entity.PlateGoodsRecord;
import java.util.List;
@ -22,4 +23,12 @@ public interface PlateGoodsApplyDetailMapper extends BaseMapper<PlateGoodsApplyD
* @return
*/
List<PlateGoodsApplyDetail> selectPage(IPage page, PlateGoodsApplyDetail entity);
/**
* 根据镀层需求上报查询明细列表
*
* @param applyId
* @return
*/
List<PlateGoodsRecord> listRecordByApplyId(Long applyId);
}

@ -6,4 +6,11 @@
<select id = "selectPage" resultType = "org.springblade.desk.order.pojo.entity.PlateGoodsApplyDetail">
</select>
<select id = "listRecordByApplyId" resultType="org.springblade.desk.order.pojo.entity.PlateGoodsRecord">
select pgr.*
from MES_PLATE_GOODS_APPLY_DETAIL pgad
left join MES_PLATE_GOODS_RECORD pgr on pgad.PGR_ID = pgr.id
where pgad.PGA_ID = #{applyId}
</select>
</mapper>

@ -5,18 +5,16 @@
<mapper namespace="org.springblade.desk.order.mapper.PlateGoodsApplyMapper">
<sql id = "baseCommonFields">
ID, TENANT_ID, CREATE_USER, CREATE_TIME, CREATE_DEPT, UPDATE_USER, UPDATE_TIME, STATUS, IS_DELETED,
APPROVAL_MAN, APPROVAL_TIME, APPROVAL_STATUS, APPROVAL_MEMO, BO_ID, BR_ID, AC_ID, PGR_ID, CODE_NUM,
WC_ID, GOODS_CODE, GOODS_DEMAND, SILVER_POTASSIUM, COEFFICIENT, DECLARED_QUOTA, DECLARED_SILVER, DECLARED_STATUS,
GOODS_BO_ID, COEFFICIENT_BO_ID, PGR_CODE, SURPLUS, SILVER_POTASSIUM_RESIDUE, DEMAND_CODE, INVOLVING_RECORD_CODE,
NOT_ADD_VAL, DETAIL_ORDER_NUM, GOODS_NAME
APPROVAL_MAN, APPROVAL_TIME, APPROVAL_STATUS, APPROVAL_MEMO, WC_ID, GOODS_CODE, GOODS_DEMAND, GOODS_NAME,
GOODS_ADD_TOTAL, GOODS_DEMAND_TOTAL, DECLARED_QUOTA_TOTAL
</sql>
<select id = "selectPage" resultType = "org.springblade.desk.order.pojo.entity.PlateGoodsApply">
SELECT <include refid = "baseCommonFields" />
FROM MES_PLATE_GOODS_APPLY
WHERE IS_DELETED = 0
<if test = "entity.demandCode != null and entity.demandCode != ''">
AND DEMAND_CODE LIKE CONCAT('%', CONCAT(#{entity.demandCode}, '%'))
<if test = "entity.goodsCode != null and entity.goodsCode != ''">
AND GOODS_CODE LIKE CONCAT('%', CONCAT(#{entity.goodsCode}, '%'))
</if>
<if test = "entity.wcId != null and entity.wcId != ''">
AND WC_ID = #{entity.wcId}

@ -3,6 +3,7 @@ package org.springblade.desk.order.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.order.pojo.entity.PlateGoodsApplyDetail;
import org.springblade.desk.order.pojo.entity.PlateGoodsRecord;
import java.util.List;
@ -24,8 +25,15 @@ public interface IPlateGoodsApplyDetailService extends BaseService<PlateGoodsApp
/**
* 根据镀层需求上报查询明细列表
*
* @param recordId
* @param applyId
* @return
*/
List<PlateGoodsApplyDetail> listByApplyId(Long recordId);
List<PlateGoodsApplyDetail> listByApplyId(Long applyId);
/**
* 根据镀层需求上报查询明细列表
*
* @param applyId
* @return
*/
List<PlateGoodsRecord> listRecordByApplyId(Long applyId);
}

@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.order.pojo.entity.AssayContentDetail;
import org.springblade.desk.order.pojo.entity.PlateGoodsApply;
import org.springblade.desk.order.pojo.entity.YieldOrder;
import java.util.List;
@ -26,11 +25,12 @@ public interface IPlateGoodsApplyService extends BaseService<PlateGoodsApply> {
/**
* 保存
*
* @param apply
* @param detailList
* @param recordIdList
* @return
*/
boolean save(List<AssayContentDetail> detailList, List<Long> recordIdList);
boolean save(PlateGoodsApply apply, List<AssayContentDetail> detailList, List<Long> recordIdList);
/**
* 批量审核
@ -42,11 +42,4 @@ public interface IPlateGoodsApplyService extends BaseService<PlateGoodsApply> {
*/
boolean confirmBatch(List<Long> ids, Integer approvalStatus, String approvalMemo);
/**
* 获取详情关联的生产订单列表
*
* @param id
* @return
*/
List<YieldOrder> listDetailYieldOrder(Long id);
}

@ -3,6 +3,8 @@ package org.springblade.desk.order.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.RequiredArgsConstructor;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.desk.order.mapper.MoldApplyMapper;
import org.springblade.desk.order.pojo.entity.MoldApply;
import org.springblade.desk.order.pojo.enums.MoldApplyEnum;
@ -34,7 +36,10 @@ public class MoldApplyServiceImpl extends BaseServiceImpl<MoldApplyMapper, MoldA
@Override
public boolean saveByDemand(MoldApply moldApply) {
long curUser = AuthUtil.getUserId();
moldApply.setStatus(MoldApplyEnum.STATUS_CREATE.getCode());
moldApply.setCreateUser(curUser);
moldApply.setCreateTime(DateUtil.now());
return save(moldApply);
}

@ -7,6 +7,7 @@ import org.springblade.common.constant.CommonConstant;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.desk.order.mapper.PlateGoodsApplyDetailMapper;
import org.springblade.desk.order.pojo.entity.PlateGoodsApplyDetail;
import org.springblade.desk.order.pojo.entity.PlateGoodsRecord;
import org.springblade.desk.order.service.IPlateGoodsApplyDetailService;
import org.springframework.stereotype.Service;
@ -27,11 +28,16 @@ public class PlateGoodsApplyDetailServiceImpl extends BaseServiceImpl<PlateGoods
}
@Override
public List<PlateGoodsApplyDetail> listByApplyId(Long recordId) {
public List<PlateGoodsApplyDetail> listByApplyId(Long applyId) {
LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(PlateGoodsApplyDetail.class)
.eq(PlateGoodsApplyDetail::getIsDeleted, CommonConstant.DELETE_FALSE)
.eq(PlateGoodsApplyDetail::getPgaId, recordId);
.eq(PlateGoodsApplyDetail::getIsDeleted, CommonConstant.DELETE_FALSE)
.eq(PlateGoodsApplyDetail::getPgaId, applyId);
List<PlateGoodsApplyDetail> dataList = baseMapper.selectList(wrapper);
return dataList;
}
@Override
public List<PlateGoodsRecord> listRecordByApplyId(Long applyId) {
return baseMapper.listRecordByApplyId(applyId);
}
}

@ -1,18 +1,23 @@
package org.springblade.desk.order.service.impl;
import cn.hutool.core.date.DateTime;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.RequiredArgsConstructor;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.desk.order.mapper.PlateGoodsApplyMapper;
import org.springblade.desk.order.pojo.entity.*;
import org.springblade.desk.order.pojo.entity.AssayContentDetail;
import org.springblade.desk.order.pojo.entity.PlateGoodsApply;
import org.springblade.desk.order.pojo.entity.PlateGoodsRecord;
import org.springblade.desk.order.pojo.enums.AssayContentEnum;
import org.springblade.desk.order.pojo.enums.PlateGoodsEnum;
import org.springblade.desk.order.service.*;
import org.springblade.desk.order.service.IAssayContentDetailService;
import org.springblade.desk.order.service.IAssayContentService;
import org.springblade.desk.order.service.IPlateGoodsApplyService;
import org.springblade.desk.order.service.IPlateGoodsRecordService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -60,11 +65,24 @@ public class PlateGoodsApplyServiceImpl extends BaseServiceImpl<PlateGoodsApplyM
@Transactional(rollbackFor = Exception.class)
@Override
public boolean save(List<AssayContentDetail> assayContentDetailList, List<Long> recordIdList) {
public boolean save(PlateGoodsApply apply, List<AssayContentDetail> assayContentDetailList, List<Long> recordIdList) {
// 1. 更新化验记录相关数据
if (Func.isEmpty(assayContentDetailList)) {
return false;
}
// 初始化物料需求申报的部分数据
apply.setCreateTime(DateTime.now());
apply.setCreateUser(AuthUtil.getUserId());
apply.setUpdateTime(DateTime.now());
apply.setUpdateUser(AuthUtil.getUserId());
apply.setStatus(PlateGoodsEnum.STATUS_WAITING.getCode());
apply.setApprovalStatus(PlateGoodsEnum.STATUS_WAITING.getCode());
// 本次申报物料需求单总物料需求剩余量
BigDecimal goodsDemandTotal = BigDecimal.ZERO;
// 本次申报物料需求单已添加量
BigDecimal declaredQuotaTotal = BigDecimal.ZERO;
// 1.1 获取化验记录ID,更新化验记录状态为已使用
Long assayContentId = assayContentDetailList.get(0).getAcId();
assayContentService.changeStatus(Arrays.asList(assayContentId), AssayContentEnum.STATUS_USED.getCode());
@ -72,59 +90,38 @@ public class PlateGoodsApplyServiceImpl extends BaseServiceImpl<PlateGoodsApplyM
// 1.2 报错化验记录明细
assayContentDetailService.updateBatchById(assayContentDetailList);
// 2. 计算本次总添加量
// 2. 计算本次总添加量(班组添加量)
BigDecimal addVal = assayContentDetailList.stream()
.map(detail -> detail.getAddVal() == null ? BigDecimal.ZERO : detail.getAddVal())
.reduce(BigDecimal.ZERO, BigDecimal::add);
apply.setGoodsAddTotal(addVal);
// 3. 更新需求单的相关数据
// 3.1 根据id查询需求单
List<PlateGoodsRecord> recordList = goodsRecordService.listByIds(recordIdList);
List<PlateGoodsApply> applyList = new ArrayList<>();
// 3.2 将需求单按照创建时间正序排列,
recordList = recordList.stream()
.sorted(Comparator.comparing(PlateGoodsRecord::getCreateTime, Comparator.nullsLast(Date::compareTo)))
.collect(Collectors.toList());
// 计算本次申请总添加量
BigDecimal applyTotalVal = recordList.stream()
.map(detail -> detail.getSurplus() == null ? BigDecimal.ZERO : detail.getSurplus())
.reduce(BigDecimal.ZERO, BigDecimal::add);
// 本次剩余单号余量, 最小为0
BigDecimal notAddVal = applyTotalVal.subtract(addVal);
notAddVal = notAddVal.compareTo(BigDecimal.ZERO) < 0 ? BigDecimal.ZERO : notAddVal;
// 缓存要添加的订单列表
List<PlateGoodsRecord> addRecordList = new ArrayList<>();
// 3.3. 按照创建先后顺序补充需求单的物料需求数量
for (PlateGoodsRecord plateGoodsRecord : recordList) {
// 对申请的数据进行计算
goodsDemandTotal = goodsDemandTotal.add(plateGoodsRecord.getSurplus());
declaredQuotaTotal = declaredQuotaTotal.add(plateGoodsRecord.getGoodsDemand().subtract(plateGoodsRecord.getSurplus()));
// 获取需求单剩余添加量
BigDecimal surplus = plateGoodsRecord.getSurplus();
PlateGoodsApply apply = BeanUtil.copyProperties(plateGoodsRecord, PlateGoodsApply.class);
apply.setId(null);
apply.setCreateTime(null);
apply.setCreateUser(AuthUtil.getUserId());
apply.setUpdateTime(null);
apply.setUpdateUser(AuthUtil.getUserId());
apply.setStatus(PlateGoodsEnum.STATUS_WAITING.getCode());
apply.setApprovalMan(null);
apply.setApprovalStatus(PlateGoodsEnum.STATUS_WAITING.getCode());
apply.setApprovalTime(null);
apply.setApprovalMemo(null);
if (addVal.compareTo(surplus) >= 0) {
// 若本次添加量,满足该订单后,还有剩余, 记录此订单,更新剩余添加量后,继续循环
plateGoodsRecord.setSurplus(BigDecimal.ZERO);
plateGoodsRecord.setStatus(PlateGoodsEnum.STATUS_DONE.getCode());
addRecordList.add(plateGoodsRecord);
apply.setPgrId(plateGoodsRecord.getId());
apply.setSurplus(BigDecimal.ZERO);
applyList.add(apply);
addVal = addVal.subtract(surplus);
if (BigDecimal.ZERO.equals(addVal)) {
break;
@ -134,35 +131,17 @@ public class PlateGoodsApplyServiceImpl extends BaseServiceImpl<PlateGoodsApplyM
plateGoodsRecord.setSurplus(surplus.subtract(addVal));
plateGoodsRecord.setStatus(PlateGoodsEnum.STATUS_USING.getCode());
addRecordList.add(plateGoodsRecord);
apply.setPgrId(plateGoodsRecord.getId());
apply.setSurplus(surplus.subtract(addVal));
applyList.add(apply);
break;
}
}
// 4. 记录添加的需求单信息; 关联单号, 本次剩余单号余量
String addAbortRecordNo = addRecordList.stream()
.map(PlateGoodsRecord::getDemandCode)
.filter(code -> code != null && !code.trim().isEmpty())
.collect(Collectors.joining(","));
apply.setGoodsDemandTotal(goodsDemandTotal);
apply.setDeclaredQuotaTotal(declaredQuotaTotal);
for (PlateGoodsRecord plateGoodsRecord : addRecordList) {
plateGoodsRecord.setInvolvingRecordCode(addAbortRecordNo);
plateGoodsRecord.setDetailOrderNum(addRecordList.size());
}
goodsRecordService.updateBatchById(addRecordList);
saveBatch(applyList);
this.save(apply);
return true;
}
@Override
public List<YieldOrder> listDetailYieldOrder(Long id) {
PlateGoodsApply apply = this.getById(id);
// 申请明细使用需求的明细,先查询关联的需求
PlateGoodsRecord record = goodsRecordService.getById(apply.getPgrId());
// 查询关联订单列表
List<YieldOrder> yieldOrderList = goodsRecordService.listDetailYieldOrder(record.getId());
return yieldOrderList;
}
}

@ -1,5 +1,6 @@
package org.springblade.desk.order.service.impl;
import com.alibaba.cloud.commons.lang.StringUtils;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.RequiredArgsConstructor;
import org.springblade.common.utils.StringPrefixUtils;
@ -12,16 +13,15 @@ import org.springblade.desk.basic.pojo.entity.CoatingThickness;
import org.springblade.desk.basic.pojo.entity.MaterialQuota;
import org.springblade.desk.basic.service.ICoatingThicknessService;
import org.springblade.desk.basic.service.IMaterialQuotaService;
import org.springblade.desk.dashboard.pojo.entity.DsProcessEntity;
import org.springblade.desk.dashboard.service.IDsCraftService;
import org.springblade.desk.dashboard.pojo.entity.BsPlatingEntity;
import org.springblade.desk.dashboard.pojo.entity.DsCraftEntity;
import org.springblade.desk.dashboard.pojo.entity.DsPartEntity;
import org.springblade.desk.dashboard.pojo.entity.DsProcessEntity;
import org.springblade.desk.dashboard.service.IBsPlatingService;
import org.springblade.desk.dashboard.service.IDsCraftService;
import org.springblade.desk.dashboard.service.IDsPartService;
import org.springblade.desk.dashboard.service.IDsProcessService;
import org.springblade.desk.order.constant.PlateGoodsConst;
import org.springblade.desk.order.constant.YieldOrderConst;
import org.springblade.desk.order.mapper.PlateGoodsRecordMapper;
import org.springblade.desk.order.pojo.entity.PlateGoodsRecord;
import org.springblade.desk.order.pojo.entity.PlateGoodsRecordDetail;
@ -31,7 +31,6 @@ import org.springblade.desk.order.pojo.enums.YieldOrderEnum;
import org.springblade.desk.order.service.IPlateGoodsRecordDetailService;
import org.springblade.desk.order.service.IPlateGoodsRecordService;
import org.springblade.desk.order.service.IYieldOrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@ -85,6 +84,9 @@ public class PlateGoodsRecordServiceImpl extends BaseServiceImpl<PlateGoodsRecor
entity.setStatus(PlateGoodsEnum.STATUS_WAITING.getCode());
entity.setApprovalStatus(PlateGoodsEnum.STATUS_WAITING.getCode());
entity.setDetailOrderNum(detailList.size());
if (StringUtils.isEmpty(entity.getGoodsName())) {
entity.setGoodsName(PlateGoodsConst.GOODS_NAME_MAP.get(entity.getGoodsCode()));
}
if (this.save(entity)) {
for (PlateGoodsRecordDetail detail : detailList) {
detail.setPgrdId(entity.getId());
@ -246,8 +248,7 @@ public class PlateGoodsRecordServiceImpl extends BaseServiceImpl<PlateGoodsRecor
//将订单状态标记为数据异常,记录异常原因,并退出
this.updateYieldOrder(yieldOrder);
return false;
}
else{
} else{
//取出工艺能力
for (DsProcessEntity process : dsProcessList) {
//DS_PROCESS表id

Loading…
Cancel
Save