订单模块-镀层物料申报

liweidong
liuqingkun 3 months ago
parent 67ec26d196
commit 1b33ff769b
  1. 1
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/PlateGoodsRecord.java
  2. 10
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/enums/MoldApplyEnum.java
  3. 22
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/controller/MoldApplyController.java
  4. 21
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/PlateGoodsRecordMapper.xml
  5. 10
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IMoldApplyService.java
  6. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/AssayContentServiceImpl.java
  7. 15
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/MoldApplyServiceImpl.java
  8. 60
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsApplyServiceImpl.java
  9. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsRecordServiceImpl.java

@ -72,6 +72,7 @@ public class PlateGoodsRecord extends BaseEntity {
* 审批状态
* 11001:正常, 11002:审批中, 11003:不通过, 11004:通过
*/
@Deprecated
@TableField(value = "APPROVAL_STATUS")
private Integer approvalStatus;

@ -21,10 +21,12 @@ public enum MoldApplyEnum {
/**
* 状态枚举
*/
STATUS_WAITING("待出库", 10000),
STATUS_OUT_STORE("已出库", 10001),
STATUS_DONE("完成", 10002),
STATUS_CLOSE("关闭", 10003),
STATUS_CREATE("新建", 10000),
STATUS_SEND("已下发", 10001),
STATUS_WAITING("待出库", 10002),
STATUS_OUT_STORE("已出库", 10003),
STATUS_DONE("完成", 10004),
STATUS_CLOSE("关闭", 10005),
/**
* 状态枚举; 11001新建11002:已下发11003已完成

@ -48,20 +48,6 @@ public class MoldApplyController extends BladeController {
return R.data(MoldApplyWrapper.build().pageVO(page));
}
/**
* 分页-近一月的申报记录
*/
@Parameters({
@Parameter(name = "partCode", description = "零件号", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
@Parameter(name = "toolCode", description = "工装号", in = ParameterIn.QUERY, schema = @Schema(type = "string"))
})
@GetMapping("/pageNearlyMonth")
@Operation(summary = "分页-近一月的模具计划", description = "")
public R<IPage<MoldApplyVo>> pageNearlyMonth(@Parameter(hidden = true) MoldApply entity, Query query) {
IPage<MoldApply> page = moldApplyService.pageNearlyMonth(Condition.getPage(query), entity);
return R.data(MoldApplyWrapper.build().pageVO(page));
}
/**
* 详情
*/
@ -77,8 +63,8 @@ public class MoldApplyController extends BladeController {
*/
@PostMapping("/saveByDemand")
@Operation(summary = "新增-根据需求新增", description = "")
public R save(@Valid @RequestBody MoldApply moldApply) {
moldApplyService.save(moldApply);
public R saveByDemand(@Valid @RequestBody MoldApply moldApply) {
moldApplyService.saveByDemand(moldApply);
return R.status(true);
}
@ -87,8 +73,8 @@ public class MoldApplyController extends BladeController {
*/
@PostMapping("/saveBatch")
@Operation(summary = "新增-批量", description = "")
public R save(@Valid @RequestBody List<MoldApply> applylist) {
moldApplyService.save(applylist);
public R saveBatch(@Valid @RequestBody List<MoldApply> applylist) {
moldApplyService.saveBatchByPage(applylist);
return R.status(true);
}
}

@ -3,11 +3,17 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.desk.order.mapper.PlateGoodsRecordMapper">
<!-- 定义基础公共字段 -->
<sql id = "baseCommonFields">
ID, TENANT_ID, CREATE_USER, CREATE_DEPT, CREATE_TIME, UPDATE_USER, UPDATE_TIME, STATUS, IS_DELETED,
WC_ID, PLATE_GOODS_CODE, GOODS_DEMAND, SILVER_POTASSIUM, COEFFICIENT, APPROVAL_MAN, APPROVAL_TIME,
APPROVAL_STATUS, APPROVAL_MEMO, 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
</sql>
<select id = "selectPage" resultType = "org.springblade.desk.order.pojo.entity.PlateGoodsRecord">
SELECT ID, TENANT_ID, CREATE_USER, CREATE_DEPT, CREATE_TIME, UPDATE_USER, UPDATE_TIME, STATUS, IS_DELETED,
WC_ID, PLATE_GOODS_CODE, GOODS_DEMAND, SILVER_POTASSIUM, COEFFICIENT, APPROVAL_MAN, APPROVAL_TIME,
APPROVAL_STATUS, APPROVAL_MEMO, DECLARED_QUOTA, DECLARED_SILVER, DECLARED_STATUS, GOODS_BO_ID, COEFFICIENT_BO_ID,
PGR_CODE, SURPLUS, SILVER_POTASSIUM_RESIDUE
SELECT <include refid = "baseCommonFields" />
FROM MES_PLATE_GOODS_RECORD
WHERE IS_DELETED = 0
<if test = "entity.demandCode != null and entity.demandCode != ''">
@ -22,13 +28,11 @@
<if test = "entity.approvalStatus != null and entity.approvalStatus != ''">
AND approval_status = #{entity.approvalStatus}
</if>
order by CREATE_TIME desc
</select>
<select id = "listNoFinished" resultType = "org.springblade.desk.order.pojo.entity.PlateGoodsRecord">
SELECT ID, TENANT_ID, CREATE_USER, CREATE_DEPT, CREATE_TIME, UPDATE_USER, UPDATE_TIME, STATUS, IS_DELETED,
WC_ID, PLATE_GOODS_CODE, GOODS_DEMAND, SILVER_POTASSIUM, COEFFICIENT, APPROVAL_MAN, APPROVAL_TIME,
APPROVAL_STATUS, APPROVAL_MEMO, DECLARED_QUOTA, DECLARED_SILVER, DECLARED_STATUS, GOODS_BO_ID, COEFFICIENT_BO_ID,
PGR_CODE, SURPLUS, SILVER_POTASSIUM_RESIDUE
SELECT <include refid = "baseCommonFields" />
FROM MES_PLATE_GOODS_RECORD
WHERE IS_DELETED = 0
AND WC_ID = #{wcId}
@ -36,6 +40,7 @@
<if test = "dayRange != null and dayRange != 0">
AND CREATE_TIME >= SYSDATE - #{dayRange}
</if>
order by CREATE_TIME desc
</select>
<select id = "getMaxByCodePattern" resultType = "string">

@ -31,11 +31,19 @@ public interface IMoldApplyService extends BaseService<MoldApply> {
*/
IPage<MoldApply> pageNearlyMonth(IPage<MoldApply> page, MoldApply entity);
/**
* 保存
*
* @param moldApply
* @return
*/
boolean saveByDemand(MoldApply moldApply);
/**
* 保存
*
* @param applyList
* @return
*/
boolean save(List<MoldApply> applyList);
boolean saveBatchByPage(List<MoldApply> applyList);
}

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.springblade.common.constant.CommonConstant;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.utils.AuthUtil;
@ -37,6 +38,7 @@ public class AssayContentServiceImpl extends BaseServiceImpl<AssayContentMapper,
@Override
public boolean save(AssayContent entity, List<AssayContentDetail> detailList) {
entity.setStatus(AssayContentEnum.STATUS_UNUSED.getCode());
entity.setIsUsed(CommonConstant.DELETE_FALSE);
BladeUser loginUser = AuthUtil.getUser();
entity.setAssayMan(loginUser.getUserId());

@ -5,6 +5,7 @@ import lombok.RequiredArgsConstructor;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.desk.order.mapper.MoldApplyMapper;
import org.springblade.desk.order.pojo.entity.MoldApply;
import org.springblade.desk.order.pojo.enums.MoldApplyEnum;
import org.springblade.desk.order.service.IMoldApplyService;
import org.springframework.stereotype.Service;
@ -32,7 +33,17 @@ public class MoldApplyServiceImpl extends BaseServiceImpl<MoldApplyMapper, MoldA
}
@Override
public boolean save(List<MoldApply> applyList) {
return false;
public boolean saveByDemand(MoldApply moldApply) {
moldApply.setStatus(MoldApplyEnum.STATUS_CREATE.getCode());
return save(moldApply);
}
@Override
public boolean saveBatchByPage(List<MoldApply> applyList) {
for (MoldApply moldApply : applyList) {
moldApply.setStatus(MoldApplyEnum.STATUS_CREATE.getCode());
}
return saveBatch(applyList);
}
}

@ -18,6 +18,7 @@ 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;
import java.math.BigDecimal;
import java.util.*;
@ -42,6 +43,25 @@ public class PlateGoodsApplyServiceImpl extends BaseServiceImpl<PlateGoodsApplyM
return page.setRecords(dataList);
}
@Override
public boolean confirmBatch(List<Long> ids, Integer approvalStatus, String approvalMemo) {
List<PlateGoodsApply> dataList = new ArrayList<>();
BladeUser user = AuthUtil.getUser();
ids.forEach(id -> {
PlateGoodsApply item = new PlateGoodsApply();
item.setId(id);
item.setApprovalMan(user.getUserId());
item.setApprovalTime(DateUtil.now());
item.setApprovalStatus(approvalStatus);
item.setApprovalMemo(approvalMemo);
dataList.add(item);
});
return this.updateBatchById(dataList);
}
@Transactional(rollbackFor = Exception.class)
@Override
public boolean save(List<AssayContentDetail> assayContentDetailList, List<Long> recordIdList) {
// 1. 更新化验记录相关数据
@ -53,12 +73,12 @@ public class PlateGoodsApplyServiceImpl extends BaseServiceImpl<PlateGoodsApplyM
assayContentService.changeStatus(Arrays.asList(assayContentId), AssayContentEnum.STATUS_USED.getCode());
// 1.2 报错化验记录明细
assayContentDetailService.saveBatch(assayContentDetailList);
assayContentDetailService.updateBatchById(assayContentDetailList);
// 2. 计算本次总添加量
BigDecimal addVal = assayContentDetailList.stream()
.map(detail -> detail.getAddVal() == null ? BigDecimal.ZERO : detail.getAddVal())
.reduce(BigDecimal.ZERO, BigDecimal::add);
.map(detail -> detail.getAddVal() == null ? BigDecimal.ZERO : detail.getAddVal())
.reduce(BigDecimal.ZERO, BigDecimal::add);
// 3. 更新需求单的相关数据
// 3.1 根据id查询需求单
@ -66,13 +86,13 @@ public class PlateGoodsApplyServiceImpl extends BaseServiceImpl<PlateGoodsApplyM
// 3.2 将需求单按照创建时间正序排列,
recordList = recordList.stream()
.sorted(Comparator.comparing(PlateGoodsRecord::getCreateTime, Comparator.nullsLast(Date::compareTo)))
.collect(Collectors.toList());
.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);
.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;
@ -105,33 +125,15 @@ public class PlateGoodsApplyServiceImpl extends BaseServiceImpl<PlateGoodsApplyM
// 4. 记录添加的需求单信息; 关联单号, 本次剩余单号余量
String addAbortRecordNo = addRecordList.stream()
.map(PlateGoodsRecord::getDemandCode)
.filter(code -> code != null && !code.trim().isEmpty())
.collect(Collectors.joining(","));
.map(PlateGoodsRecord::getDemandCode)
.filter(code -> code != null && !code.trim().isEmpty())
.collect(Collectors.joining(","));
for (PlateGoodsRecord plateGoodsRecord : addRecordList) {
plateGoodsRecord.setInvolvingRecordCode(addAbortRecordNo);
plateGoodsRecord.setSurplus(notAddVal);
}
goodsRecordService.saveBatch(addRecordList);
goodsRecordService.updateBatchById(addRecordList);
return true;
}
@Override
public boolean confirmBatch(List<Long> ids, Integer approvalStatus, String approvalMemo) {
List<PlateGoodsApply> dataList = new ArrayList<>();
BladeUser user = AuthUtil.getUser();
ids.forEach(id -> {
PlateGoodsApply item = new PlateGoodsApply();
item.setId(id);
item.setApprovalMan(user.getUserId());
item.setApprovalTime(DateUtil.now());
item.setApprovalStatus(approvalStatus);
item.setApprovalMemo(approvalMemo);
dataList.add(item);
});
return this.updateBatchById(dataList);
}
}

@ -49,7 +49,7 @@ public class PlateGoodsRecordServiceImpl extends BaseServiceImpl<PlateGoodsRecor
@Override
public boolean save(PlateGoodsRecord entity, List<PlateGoodsRecordDetail> detailList) {
entity.setDemandCode(generateCode());
entity.setSurplus(entity.getDeclaredQuota());
entity.setSurplus(entity.getGoodsDemand());
entity.setStatus(PlateGoodsEnum.STATUS_WAITING.getCode());
entity.setApprovalStatus(PlateGoodsEnum.STATUS_WAITING.getCode());
entity.setDetailOrderNum(detailList.size());
@ -85,6 +85,7 @@ public class PlateGoodsRecordServiceImpl extends BaseServiceImpl<PlateGoodsRecor
plateGoodsRecord.setApprovalMan(user.getUserId());
plateGoodsRecord.setApprovalTime(DateUtil.now());
plateGoodsRecord.setApprovalStatus(approvalStatus);
plateGoodsRecord.setStatus(approvalStatus);
plateGoodsRecord.setApprovalMemo(approvalMemo);
plateGoodsRecordList.add(plateGoodsRecord);
});

Loading…
Cancel
Save