供应链-采购管理

This commit is contained in:
gaowdong 2025-05-20 11:16:05 +08:00
parent b775a79f19
commit 68d40d110e
8 changed files with 54 additions and 51 deletions

View File

@ -72,7 +72,7 @@ public class DrpInquiryServiceImpl extends ServiceImpl<DrpPurchaseInquiryMapper,
public void cancelInquiry(DrpInquiryAddVO content) { public void cancelInquiry(DrpInquiryAddVO content) {
((DrpPurchaseInquiryMapper)this.baseMapper).cancelInquiry(content.getInquiryId(), DrpInquiryStatusEnum.LOSE_THE_BID.key()); this.baseMapper.cancelInquiry(content.getInquiryId(), DrpInquiryStatusEnum.LOSE_THE_BID.key());
} }
@Transactional( @Transactional(
@ -83,9 +83,9 @@ public class DrpInquiryServiceImpl extends ServiceImpl<DrpPurchaseInquiryMapper,
DrpInquiry drpInquiry = new DrpInquiry(); DrpInquiry drpInquiry = new DrpInquiry();
BeanUtil.copyProperties(content, drpInquiry); BeanUtil.copyProperties(content, drpInquiry);
drpInquiry.setStatus(DrpInquiryStatusEnum.NO_COMMIT.key()); drpInquiry.setStatus(DrpInquiryStatusEnum.NO_COMMIT.key());
if (CharSequenceUtil.isNotEmpty(drpInquiry.getPhone())) { // if (CharSequenceUtil.isNotEmpty(drpInquiry.getPhone())) {
drpInquiry.setPhone(AesEncryptUtil.aesDecode(drpInquiry.getPhone())); // drpInquiry.setPhone(AesEncryptUtil.aesDecode(drpInquiry.getPhone()));
} // }
String inquiryId = content.getInquiryId(); String inquiryId = content.getInquiryId();
if (CharSequenceUtil.isNotBlank(inquiryId)) { if (CharSequenceUtil.isNotBlank(inquiryId)) {
@ -203,7 +203,7 @@ public class DrpInquiryServiceImpl extends ServiceImpl<DrpPurchaseInquiryMapper,
String inquiryId = content.getInquiryId(); String inquiryId = content.getInquiryId();
HashMap<String, Object> deleteMap = new HashMap(); HashMap<String, Object> deleteMap = new HashMap();
deleteMap.put("inquiry_id", inquiryId); deleteMap.put("inquiry_id", inquiryId);
((DrpPurchaseInquiryMapper)this.baseMapper).deleteByInquiryId(inquiryId, DelFlagEnum.DEL_TRUE.key()); this.baseMapper.deleteByInquiryId(inquiryId, DelFlagEnum.DEL_TRUE.key());
} }
public List<DrpSupplierQuoteVO> listSupplierQuote(String inquiryId) { public List<DrpSupplierQuoteVO> listSupplierQuote(String inquiryId) {
@ -285,7 +285,7 @@ public class DrpInquiryServiceImpl extends ServiceImpl<DrpPurchaseInquiryMapper,
while(var6.hasNext()) { while(var6.hasNext()) {
DrpInquiryDetailPageVO drpInquiryDetailPageVO = (DrpInquiryDetailPageVO)var6.next(); DrpInquiryDetailPageVO drpInquiryDetailPageVO = (DrpInquiryDetailPageVO)var6.next();
DrpOrderGoodsDetail drpOrderGoodsDetail = new DrpOrderGoodsDetail(); DrpOrderGoodsDetail drpOrderGoodsDetail = new DrpOrderGoodsDetail();
BeanUtil.copyProperties(drpInquiryDetailPageVO, drpOrderGoodsDetail, new String[0]); BeanUtil.copyProperties(drpInquiryDetailPageVO, drpOrderGoodsDetail);
drpOrderGoodsDetail.setOrderGoodsDetailId(Id.next()); drpOrderGoodsDetail.setOrderGoodsDetailId(Id.next());
drpOrderGoodsDetail.setOrderGoodsId(orderGoodsId); drpOrderGoodsDetail.setOrderGoodsId(orderGoodsId);
drpOrderGoodsDetail.setOrderNum(drpInquiryDetailPageVO.getQuoteNum()); drpOrderGoodsDetail.setOrderNum(drpInquiryDetailPageVO.getQuoteNum());
@ -296,7 +296,7 @@ public class DrpInquiryServiceImpl extends ServiceImpl<DrpPurchaseInquiryMapper,
} }
protected void updateInquiryStatus(DrpCommitFinalBidsDTO content, LocalDateTime bidTime) { protected void updateInquiryStatus(DrpCommitFinalBidsDTO content, LocalDateTime bidTime) {
((DrpPurchaseInquiryMapper)this.baseMapper).update(null, ((((Wrappers.lambdaUpdate(DrpInquiry.class).eq(DrpInquiry::getInquiryId, content.getInquiryId())).set(DrpInquiry::getStatus, DrpInquiryStatusEnum.ALREADY_QUOTE.key())).set(DrpInquiry::getBidTotalPrice, content.getBidTotalPrice())).set(DrpInquiry::getSupplierId, content.getSupplierId())).set(DrpInquiry::getBidTime, bidTime)); this.baseMapper.update(null, ((((Wrappers.lambdaUpdate(DrpInquiry.class).eq(DrpInquiry::getInquiryId, content.getInquiryId())).set(DrpInquiry::getStatus, DrpInquiryStatusEnum.ALREADY_QUOTE.key())).set(DrpInquiry::getBidTotalPrice, content.getBidTotalPrice())).set(DrpInquiry::getSupplierId, content.getSupplierId())).set(DrpInquiry::getBidTime, bidTime));
this.drpPurchaseInquirySupplierMapper.update(null, (Wrappers.lambdaUpdate(DrpInquirySupplier.class).eq(DrpInquirySupplier::getInquiryId, content.getInquiryId())).set(DrpInquirySupplier::getBidStatus, DrpQuoteStatusEnum.LOSE_THE_BID.key())); this.drpPurchaseInquirySupplierMapper.update(null, (Wrappers.lambdaUpdate(DrpInquirySupplier.class).eq(DrpInquirySupplier::getInquiryId, content.getInquiryId())).set(DrpInquirySupplier::getBidStatus, DrpQuoteStatusEnum.LOSE_THE_BID.key()));
this.drpPurchaseInquirySupplierMapper.update(null, ((Wrappers.lambdaUpdate(DrpInquirySupplier.class).eq(DrpInquirySupplier::getInquiryId, content.getInquiryId())).eq(DrpInquirySupplier::getSupplierId, content.getSupplierId())).set(DrpInquirySupplier::getBidStatus, DrpQuoteStatusEnum.WON_THE_BID.key())); this.drpPurchaseInquirySupplierMapper.update(null, ((Wrappers.lambdaUpdate(DrpInquirySupplier.class).eq(DrpInquirySupplier::getInquiryId, content.getInquiryId())).eq(DrpInquirySupplier::getSupplierId, content.getSupplierId())).set(DrpInquirySupplier::getBidStatus, DrpQuoteStatusEnum.WON_THE_BID.key()));
} }
@ -351,7 +351,7 @@ public class DrpInquiryServiceImpl extends ServiceImpl<DrpPurchaseInquiryMapper,
content.setPhone(AesEncryptUtil.aesDecode(content.getPhone())); content.setPhone(AesEncryptUtil.aesDecode(content.getPhone()));
String inquiryId = content.getInquiryId(); String inquiryId = content.getInquiryId();
DrpInquiry drpInquiry = new DrpInquiry(); DrpInquiry drpInquiry = new DrpInquiry();
BeanUtil.copyProperties(content, drpInquiry, new String[0]); BeanUtil.copyProperties(content, drpInquiry);
if (CharSequenceUtil.isNotEmpty(drpInquiry.getPhone())) { if (CharSequenceUtil.isNotEmpty(drpInquiry.getPhone())) {
drpInquiry.setPhone(AesEncryptUtil.aesDecode(drpInquiry.getPhone())); drpInquiry.setPhone(AesEncryptUtil.aesDecode(drpInquiry.getPhone()));
} }
@ -363,11 +363,11 @@ public class DrpInquiryServiceImpl extends ServiceImpl<DrpPurchaseInquiryMapper,
drpInquiry.setStatus(DrpInquiryStatusEnum.DOING_QUOTE.key()); drpInquiry.setStatus(DrpInquiryStatusEnum.DOING_QUOTE.key());
if (CharSequenceUtil.isNotBlank(inquiryId)) { if (CharSequenceUtil.isNotBlank(inquiryId)) {
drpInquiry.setInquiryId(inquiryId); drpInquiry.setInquiryId(inquiryId);
((DrpPurchaseInquiryMapper)this.baseMapper).update(drpInquiry, Wrappers.lambdaUpdate(DrpInquiry.class).eq(DrpInquiry::getInquiryId, inquiryId)); this.baseMapper.update(drpInquiry, Wrappers.lambdaUpdate(DrpInquiry.class).eq(DrpInquiry::getInquiryId, inquiryId));
} else { } else {
inquiryId = CustomIdGenerateUtil.generateInquiryId(); inquiryId = CustomIdGenerateUtil.generateInquiryId();
drpInquiry.setInquiryId(inquiryId); drpInquiry.setInquiryId(inquiryId);
((DrpPurchaseInquiryMapper)this.baseMapper).insert(drpInquiry); this.baseMapper.insert(drpInquiry);
} }
List<DrpInquiryDetailAddDTO> detailList = content.getDetailList(); List<DrpInquiryDetailAddDTO> detailList = content.getDetailList();
@ -400,7 +400,7 @@ public class DrpInquiryServiceImpl extends ServiceImpl<DrpPurchaseInquiryMapper,
while(var12.hasNext()) { while(var12.hasNext()) {
DrpInquiryDetail detail = (DrpInquiryDetail)var12.next(); DrpInquiryDetail detail = (DrpInquiryDetail)var12.next();
DrpQuote quote = new DrpQuote(); DrpQuote quote = new DrpQuote();
BeanUtil.copyProperties(detail, quote, new String[0]); BeanUtil.copyProperties(detail, quote);
quote.setId((Long)null); quote.setId((Long)null);
quote.setQuoteId(Id.next()); quote.setQuoteId(Id.next());
quote.setInquirySupplierId(inquirySupplierId); quote.setInquirySupplierId(inquirySupplierId);

View File

@ -164,7 +164,7 @@ public class DrpPurchasePlanServiceImpl extends ServiceImpl<DrpPurchasePlanMappe
) )
public DrpPurchasePlanAddVO addSaveDrpPurchasePlan(DrpPurchasePlanSaveDTO content) { public DrpPurchasePlanAddVO addSaveDrpPurchasePlan(DrpPurchasePlanSaveDTO content) {
DrpPurchasePlan purchasePlan = new DrpPurchasePlan(); DrpPurchasePlan purchasePlan = new DrpPurchasePlan();
BeanUtil.copyProperties(content, purchasePlan, new String[0]); BeanUtil.copyProperties(content, purchasePlan);
String planId = content.getPlanId(); String planId = content.getPlanId();
purchasePlan.setStatus(DrpPurchasePlanStatusEnum.SAVE.key()); purchasePlan.setStatus(DrpPurchasePlanStatusEnum.SAVE.key());
if (CharSequenceUtil.isBlank(planId)) { if (CharSequenceUtil.isBlank(planId)) {

View File

@ -7,47 +7,50 @@ import com.bonus.common.houqin.constant.GlobalConstants;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.security.SecureRandom;
public class CustomIdGenerateUtil { public class CustomIdGenerateUtil {
public static String generateInspectGoodsId() {
return generateFixedRuleId("inspectGoodsId:", "YHD", 3, 3);
}
public static String generateProductionId() {
return generateFixedRuleId("productionId:", "SCJH", 3, 3);
}
public static String generatePurchaseOrdId() {
return generateFixedRuleId("purchaseOrderId:", "CGJH", 3, 3);
}
public static String generateContractId() {
return generateFixedRuleId("drpContractId:", "CGHT", 3, 3);
}
public static String generateMarketPriceId() {
return generateFixedRuleId("drpAdjustmentOrderId:", "SCJ", 3, 3);
}
public static String generateOrderGoodsId() {
return generateFixedRuleId("orderGoodsId:", "CGDD", 3, 3);
}
public static String generateInquiryId() {
return generateFixedRuleId("inquiryId:", "XJD", 3, 3);
}
public static String generateFixedRuleId(String redisKey, String idPrefix, Integer randomLength, Integer length) {
Long var10000 = GlobalConstants.TENANT_ID;
redisKey = "ystKey:" + var10000 + ":" + redisKey;
Long incr = RedisUtil.getIncr(redisTemplate(), redisKey);
return idPrefix + DateUtil.format(LocalDateTime.now(), "yyyyMMdd") + getRandomDigit(randomLength) + (length <= 0 ? "" : String.format("%0" + length + "d", incr));
}
private static RedisTemplate<Object, Object> redisTemplate() { private static RedisTemplate<Object, Object> redisTemplate() {
return SpringContextHolder.getBean("redisTemplate"); return SpringContextHolder.getBean("redisTemplate");
} }
public static String generateInspectGoodsId() {
return generateCustomId("supplyChain:purchase:inspectGoodsId:", "CGYH", 3, 3);
}
public static String generateProductionId() {
return generateCustomId("supplyChain:purchase:productionId:", "CGSC", 3, 3);
}
public static String generatePurchaseOrdId() {
return generateCustomId("supplyChain:purchase:purchaseOrderId:", "CGJH", 3, 3);
}
public static String generateContractId() {
return generateCustomId("supplyChain:purchase:contractId:", "CGHT", 3, 3);
}
public static String generateMarketPriceId() {
return generateCustomId("supplyChain:purchase:marketPriceId:", "CGSJ", 3, 3);
}
public static String generateOrderGoodsId() {
return generateCustomId("supplyChain:purchase:orderGoodsId:", "CGDD", 3, 3);
}
public static String generateInquiryId() {
return generateCustomId("supplyChain:purchase:inquiryId:", "CGXJ", 3, 3);
}
public static String getRandomDigit(int length) { public static String generateCustomId(String redisKey, String idPrefix, Integer randomLength, Integer length) {
Long tenantId = GlobalConstants.TENANT_ID;
redisKey = "sc:" + tenantId + ":" + redisKey;
Long incr = RedisUtil.getIncr(redisTemplate(), redisKey);
return idPrefix + DateUtil.format(LocalDateTime.now(), "yyyyMMdd") + generateRandomNumber(randomLength) + (length <= 0 ? "" : String.format("%0" + length + "d", incr));
}
public static String generateRandomNumber(int length) {
if (length <= 0) { if (length <= 0) {
return ""; return "";
} else { }
int num = (int)(Math.random() * Math.pow(10.0, (double)length));
SecureRandom random = new SecureRandom();
int min = (int) Math.pow(10, length - 1);
int max = (int) Math.pow(10, length);
int num = random.nextInt(max - min) + min;
return String.format("%0" + length + "d", num); return String.format("%0" + length + "d", num);
} }
}
} }

View File

@ -83,7 +83,7 @@
left join drp_market_price b on a.harvest_id = b.harvest_id left join drp_market_price b on a.harvest_id = b.harvest_id
WHERE WHERE
b.commit_status = 2 and b.del_flag = 2 b.commit_status = 2 and b.del_flag = 0
AND a.material_id IN AND a.material_id IN
<foreach collection="materialIdList" item="materialId" separator="," open="(" close=")"> <foreach collection="materialIdList" item="materialId" separator="," open="(" close=")">
#{materialId} #{materialId}

View File

@ -73,7 +73,7 @@
select dpc.* select dpc.*
from drp_procurement_contract dpc from drp_procurement_contract dpc
where dpc.supplier_id = #{supplierId} where dpc.supplier_id = #{supplierId}
and dpc.del_flag = 2 and dpc.del_flag = 0
and dpc.commit_status = 2 and dpc.commit_status = 2
and dpc.contract_status = 2 and dpc.contract_status = 2
and dpc.approve_status = 3 and dpc.approve_status = 3

View File

@ -30,7 +30,7 @@
left join drp_supplier c on c.supplier_id = a.supplier_id left join drp_supplier c on c.supplier_id = a.supplier_id
left join alloc_area b on a.area_id = b.area_id left join alloc_area b on a.area_id = b.area_id
where where
a.del_flag = 2 a.del_flag = 0
<if test="content.areaIdList != null and content.areaIdList.size() > 0"> <if test="content.areaIdList != null and content.areaIdList.size() > 0">
and a.area in and a.area in
<foreach collection="content.areaIdList" item="areaId" separator="," open="(" close=")"> <foreach collection="content.areaIdList" item="areaId" separator="," open="(" close=")">
@ -127,7 +127,7 @@
drp_inquiry a drp_inquiry a
LEFT JOIN drp_inquiry_supplier b ON a.inquiry_id = b.inquiry_id LEFT JOIN drp_inquiry_supplier b ON a.inquiry_id = b.inquiry_id
WHERE WHERE
a.del_flag = 2 a.del_flag = 0
and a.status not in and a.status not in
<foreach collection="notCommitStatus" item="status" open="(" close=")" separator=","> <foreach collection="notCommitStatus" item="status" open="(" close=")" separator=",">
#{status} #{status}

View File

@ -16,7 +16,7 @@
left join drp_order_goods b on a.order_goods_id = b.order_goods_id left join drp_order_goods b on a.order_goods_id = b.order_goods_id
WHERE WHERE
b.order_status = 2 and b.approve_status = 3 and b.supplier_confirm_status = 2 and b.del_flag = 2 b.order_status = 2 and b.approve_status = 3 and b.supplier_confirm_status = 2 and b.del_flag = 0
AND a.material_id IN AND a.material_id IN
<foreach collection="materialIdList" item="materialId" separator="," open="(" close=")"> <foreach collection="materialIdList" item="materialId" separator="," open="(" close=")">
#{materialId} #{materialId}

View File

@ -259,7 +259,7 @@
<if test="content.canteenId != null"> <if test="content.canteenId != null">
LEFT JOIN drp_menu_material_supplier dmms ON dmms.material_id = a.material_id LEFT JOIN drp_menu_material_supplier dmms ON dmms.material_id = a.material_id
AND dmms.canteen_id = #{content.canteenId} AND dmms.canteen_id = #{content.canteenId}
AND dmms.del_flag = 2 AND dmms.del_flag = 0
AND dmms.if_supply = 1 AND dmms.if_supply = 1
</if> </if>
<where> <where>