|
@@ -11,18 +11,17 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.gree.mall.manager.bean.admin.AdminUserCom;
|
|
|
-import com.gree.mall.manager.bean.material.worker.OldRefundManageBean;
|
|
|
-import com.gree.mall.manager.bean.material.worker.OldRefundManageItemBean;
|
|
|
-import com.gree.mall.manager.bean.material.worker.OldRefundManageRecordBean;
|
|
|
-import com.gree.mall.manager.bean.material.worker.OldRefundManageVO;
|
|
|
+import com.gree.mall.manager.bean.material.stock.WebsitStockDTO;
|
|
|
+import com.gree.mall.manager.bean.material.stock.WorkerStockDTO;
|
|
|
+import com.gree.mall.manager.bean.material.worker.*;
|
|
|
import com.gree.mall.manager.commonmapper.MaterialMapper;
|
|
|
import com.gree.mall.manager.enums.IsEnum;
|
|
|
import com.gree.mall.manager.enums.base.BaseEnum;
|
|
|
import com.gree.mall.manager.enums.material.*;
|
|
|
import com.gree.mall.manager.exception.RemoteServiceException;
|
|
|
import com.gree.mall.manager.logic.common.CommonLogic;
|
|
|
+import com.gree.mall.manager.logic.material.stock.MaterialGoodsStockLogic;
|
|
|
import com.gree.mall.manager.logic.material.worker.OldRefundManageInnerLogic;
|
|
|
-import com.gree.mall.manager.bean.material.worker.PartsRefundRecordDTO;
|
|
|
import com.gree.mall.manager.plus.entity.*;
|
|
|
import com.gree.mall.manager.plus.service.*;
|
|
|
import com.gree.mall.manager.zfire.bean.ZfireParamBean;
|
|
@@ -56,6 +55,8 @@ public class WorkerOldRefundManageLogic {
|
|
|
private final WebsitPartsOldRefundManageRecordService websitPartsOldRefundManageRecordService;
|
|
|
private final WebsitPartsRefundRecordService websitPartsRefundRecordService;
|
|
|
private final WorkerStockAccService workerStockAccService;
|
|
|
+ private final MaterialGoodsStockLogic materialGoodsStockLogic;
|
|
|
+ private final StorageService storageService;
|
|
|
|
|
|
public IPage<OldRefundManageVO> pageList(ZfireParamBean zfireParamBean) {
|
|
|
AdminUserCom adminUser = commonLogic.getAdminUser();
|
|
@@ -92,17 +93,18 @@ public class WorkerOldRefundManageLogic {
|
|
|
return oldRefundManageBean;
|
|
|
}
|
|
|
|
|
|
- public void refund(String applyNo, String flag, String examineRemark) {
|
|
|
+ @Transactional
|
|
|
+ public void refund(String applyNo, String flag, String examineRemark) throws Exception {
|
|
|
AdminUserCom adminUser = commonLogic.getAdminUser();
|
|
|
WebsitPartsOldRefundManage partsOldRefundManage = websitPartsOldRefundManageService.getById(applyNo);
|
|
|
if (Objects.isNull(partsOldRefundManage)) {
|
|
|
throw new RemoteServiceException("申请单号不存在");
|
|
|
}
|
|
|
- if (PartsRepairFlagEnum.OUTSIDE.toString().equals(partsOldRefundManage.getRepairFlag())) {
|
|
|
+ if (PartsRepairFlagEnum.OUTSIDE.getKey().equals(partsOldRefundManage.getRepairFlag())) {
|
|
|
throw new RemoteServiceException("申请单号不存在");
|
|
|
}
|
|
|
// 保内 flag=已返还
|
|
|
- if (PartsRepairFlagEnum.INNER.toString().equals(partsOldRefundManage.getRepairFlag())) {
|
|
|
+ if (PartsRepairFlagEnum.INNER.getKey().equals(partsOldRefundManage.getRepairFlag())) {
|
|
|
if (!partsOldRefundManage.getFlag().equals(PartsOrderFlagEnum.AGREE.getKey())) {
|
|
|
throw new RemoteServiceException(applyNo + "单据状态:"
|
|
|
+ BaseEnum.keyToValue(PartsOrderFlagEnum.class, partsOldRefundManage.getFlag()) + ",失败");
|
|
@@ -112,7 +114,7 @@ public class WorkerOldRefundManageLogic {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- String refType = PartsRefTypeEnum.OLD_REFUND.toString();
|
|
|
+ String refType = PartsRefTypeEnum.OLD_REFUND.getRemark();
|
|
|
|
|
|
DateTime curDate = DateUtil.date();
|
|
|
partsOldRefundManage.setExamineRemark(examineRemark)
|
|
@@ -132,13 +134,13 @@ public class WorkerOldRefundManageLogic {
|
|
|
// 已返还的处理
|
|
|
if (flag.equals(PartsOrderFlagEnum.REFUNDED.getKey())) {
|
|
|
// 减师傅临占旧件库存
|
|
|
-// List<WorkerStockDTO> workerStockDTOList = oldRefundManageInnerLogic.createWorkerStockDTO(partsOldRefundManage, partsOldRefundManageItems,
|
|
|
-// refType, PartsStockPartsAttrEnum.TEMP_OLD.toString(), null, flag);
|
|
|
-// partsStockLogic.handleWorkerStock(workerStockDTOList);
|
|
|
+ List<WorkerStockDTO> workerStockDTOList = oldRefundManageInnerLogic.createWorkerStockDTO(partsOldRefundManage, partsOldRefundManageItems,
|
|
|
+ refType, PartsAttrEnum.TEMP_OLD.getKey(), null, flag);
|
|
|
+ materialGoodsStockLogic.handleWorkerStock(workerStockDTOList);
|
|
|
|
|
|
// 网点旧件库存增加
|
|
|
-// List<ShopStockDTO> shopStockDTOList = this.createShopStockDTO(partsOldRefundManage, partsOldRefundManageItems);
|
|
|
-// partsStockLogic.handleShopStock(shopStockDTOList);
|
|
|
+ List<WebsitStockDTO> shopStockDTOList = this.createWebsitStockDTO(partsOldRefundManage, partsOldRefundManageItems);
|
|
|
+ materialGoodsStockLogic.handleWebsitStock(shopStockDTOList);
|
|
|
|
|
|
List<WebsitPartsOldRefundManageRecord> partsNewRefundManageRecords = websitPartsOldRefundManageRecordService.lambdaQuery()
|
|
|
.eq(WebsitPartsOldRefundManageRecord::getApplyNo, partsOldRefundManage.getApplyNo())
|
|
@@ -148,9 +150,9 @@ public class WorkerOldRefundManageLogic {
|
|
|
websitPartsRefundRecordService.saveBatch(partsRefundRecordList);
|
|
|
} else {
|
|
|
// 加师傅旧件库存
|
|
|
-// List<WorkerStockDTO> workerStockDTOList = oldRefundManageInnerLogic.createWorkerStockDTO(partsOldRefundManage, partsOldRefundManageItems,
|
|
|
-// refType, PartsStockPartsAttrEnum.TEMP_OLD.toString(), PartsStockPartsAttrEnum.OLD.toString(), flag);
|
|
|
-// partsStockLogic.handleWorkerStock(workerStockDTOList);
|
|
|
+ List<WorkerStockDTO> workerStockDTOList = oldRefundManageInnerLogic.createWorkerStockDTO(partsOldRefundManage, partsOldRefundManageItems,
|
|
|
+ refType, PartsAttrEnum.TEMP_OLD.getKey(), PartsAttrEnum.OLD.getKey(), flag);
|
|
|
+ materialGoodsStockLogic.handleWorkerStock(workerStockDTOList);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -194,7 +196,7 @@ public class WorkerOldRefundManageLogic {
|
|
|
* @param examineRemark
|
|
|
*/
|
|
|
@Transactional
|
|
|
- public void examine(String applyNo, Boolean isDisc, String examineRemark) {
|
|
|
+ public void examine(String applyNo, Boolean isDisc, String examineRemark) throws Exception {
|
|
|
AdminUserCom adminUser = commonLogic.getAdminUser();
|
|
|
WebsitPartsOldRefundManage partsOldRefundManage = websitPartsOldRefundManageService.getById(applyNo);
|
|
|
if (Objects.isNull(partsOldRefundManage)) {
|
|
@@ -204,8 +206,8 @@ public class WorkerOldRefundManageLogic {
|
|
|
throw new RemoteServiceException("申请单号不存在");
|
|
|
}
|
|
|
|
|
|
- String refType = PartsRefTypeEnum.OUTSIDE_TO_SALES.toString();
|
|
|
- String flag = isDisc ? PartsOrderFlagEnum.AGREE.getKey() : PartsOrderFlagEnum.WAIT_REVIEW.toString();
|
|
|
+ String refType = PartsRefTypeEnum.OUTSIDE_TO_SALES.getRemark();
|
|
|
+ String flag = isDisc ? PartsOrderFlagEnum.AGREE.getKey() : PartsOrderFlagEnum.WAIT_REVIEW.getKey();
|
|
|
|
|
|
DateTime curDate = DateUtil.date();
|
|
|
partsOldRefundManage.setExamineRemark(examineRemark)
|
|
@@ -222,11 +224,11 @@ public class WorkerOldRefundManageLogic {
|
|
|
.list();
|
|
|
|
|
|
// 已审批的处理
|
|
|
- if (flag.equals(PartsOrderFlagEnum.AGREE.toString())) {
|
|
|
+ if (flag.equals(PartsOrderFlagEnum.AGREE.getKey())) {
|
|
|
// 减师傅临占旧件库存
|
|
|
-// List<WorkerStockDTO> workerStockDTOList = oldRefundManageInnerLogic.createWorkerStockDTO(partsOldRefundManage, partsOldRefundManageItems,
|
|
|
-// refType, PartsStockPartsAttrEnum.TEMP_OLD.toString(), null, flag);
|
|
|
-// partsStockLogic.handleWorkerStock(workerStockDTOList);
|
|
|
+ List<WorkerStockDTO> workerStockDTOList = oldRefundManageInnerLogic.createWorkerStockDTO(partsOldRefundManage, partsOldRefundManageItems,
|
|
|
+ refType, PartsAttrEnum.TEMP_OLD.getKey(), null, flag);
|
|
|
+ materialGoodsStockLogic.handleWorkerStock(workerStockDTOList);
|
|
|
|
|
|
List<WebsitPartsOldRefundManageRecord> partsNewRefundManageRecords = websitPartsOldRefundManageRecordService.lambdaQuery()
|
|
|
.eq(WebsitPartsOldRefundManageRecord::getApplyNo, partsOldRefundManage.getApplyNo())
|
|
@@ -244,7 +246,7 @@ public class WorkerOldRefundManageLogic {
|
|
|
* @param reviewRemark
|
|
|
*/
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public void review(String applyNo, Boolean reviewResult, String reviewRemark) {
|
|
|
+ public void review(String applyNo, Boolean reviewResult, String reviewRemark) throws Exception {
|
|
|
AdminUserCom adminUser = commonLogic.getAdminUser();
|
|
|
WebsitPartsOldRefundManage partsOldRefundManage = websitPartsOldRefundManageService.getById(applyNo);
|
|
|
if (Objects.isNull(partsOldRefundManage)) {
|
|
@@ -254,7 +256,7 @@ public class WorkerOldRefundManageLogic {
|
|
|
throw new RemoteServiceException("申请单号不存在");
|
|
|
}
|
|
|
|
|
|
- String refType = PartsRefTypeEnum.OUTSIDE_TO_SALES.getKey();
|
|
|
+ String refType = PartsRefTypeEnum.OUTSIDE_TO_SALES.getRemark();
|
|
|
String flag = PartsOrderFlagEnum.REVIEWED.getKey();
|
|
|
|
|
|
DateTime curDate = DateUtil.date();
|
|
@@ -273,10 +275,10 @@ public class WorkerOldRefundManageLogic {
|
|
|
|
|
|
// 已复核的处理
|
|
|
// 减师傅临占旧件库存
|
|
|
-// List<WorkerStockDTO> workerStockDTOList = oldRefundManageInnerLogic.createWorkerStockDTO(partsOldRefundManage, partsOldRefundManageItems,
|
|
|
-// refType, PartsStockPartsAttrEnum.TEMP_OLD.toString(), null, flag);
|
|
|
-//
|
|
|
-// partsStockLogic.handleWorkerStock(workerStockDTOList);
|
|
|
+ List<WorkerStockDTO> workerStockDTOList = oldRefundManageInnerLogic.createWorkerStockDTO(partsOldRefundManage, partsOldRefundManageItems,
|
|
|
+ refType, PartsAttrEnum.TEMP_OLD.getKey(), null, flag);
|
|
|
+
|
|
|
+ materialGoodsStockLogic.handleWorkerStock(workerStockDTOList);
|
|
|
|
|
|
if (reviewResult) {
|
|
|
List<WebsitPartsOldRefundManageRecord> partsNewRefundManageRecords = websitPartsOldRefundManageRecordService.lambdaQuery()
|
|
@@ -358,6 +360,8 @@ public class WorkerOldRefundManageLogic {
|
|
|
throw new RemoteServiceException("导入数据不能空");
|
|
|
}
|
|
|
for (WebsitPartsSettlementRecord settlementRecord : partsSettlementRecords) {
|
|
|
+ settlementRecord.setCompanyWechatId(adminUser.getCompanyWechatId())
|
|
|
+ .setCompanyWechatName(adminUser.getCompanyName());
|
|
|
if (StringUtils.isBlank(settlementRecord.getPgId()) || StringUtils.isBlank(settlementRecord.getWorkState()) ) {
|
|
|
throw new RemoteServiceException("导入的序号" + settlementRecord.getNo() + "数据异常,导入中止");
|
|
|
}
|
|
@@ -388,6 +392,7 @@ public class WorkerOldRefundManageLogic {
|
|
|
List<WebsitPartsOldRefundManage> updateList = new ArrayList<>();
|
|
|
for (List<String> pgIdList : splitList) {
|
|
|
final List<WebsitPartsOldRefundManage> partsOldRefundManageList = websitPartsOldRefundManageService.lambdaQuery()
|
|
|
+ .eq(WebsitPartsOldRefundManage::getCompanyWechatId, adminUser.getCompanyWechatId())
|
|
|
.in(WebsitPartsOldRefundManage::getPgId, pgIdList)
|
|
|
.eq(WebsitPartsOldRefundManage::getRepairFlag, repairFlag)
|
|
|
.eq(WebsitPartsOldRefundManage::getSettlementState, false)
|
|
@@ -417,6 +422,7 @@ public class WorkerOldRefundManageLogic {
|
|
|
if(Collections.isEmpty(objects)) {
|
|
|
throw new RemoteServiceException("导入数据不能为空");
|
|
|
}
|
|
|
+ AdminUserCom adminUser = commonLogic.getAdminUser();
|
|
|
StringBuilder msg = new StringBuilder();
|
|
|
LinkedHashSet<String> pgIds = new LinkedHashSet<>();
|
|
|
for (Object data : objects) {
|
|
@@ -429,6 +435,7 @@ public class WorkerOldRefundManageLogic {
|
|
|
List<List<String>> splitList = CollUtil.split(pgIds, 500);
|
|
|
for (List<String> pgIdList : splitList) {
|
|
|
final List<WebsitPartsOldRefundManage> partsOldRefundManageList = websitPartsOldRefundManageService.lambdaQuery()
|
|
|
+ .eq(WebsitPartsOldRefundManage::getCompanyWechatId, adminUser.getCompanyWechatId())
|
|
|
.in(WebsitPartsOldRefundManage::getPgId, pgIdList)
|
|
|
.eq(WebsitPartsOldRefundManage::getRepairFlag, repairFlag)
|
|
|
.list();
|
|
@@ -521,4 +528,40 @@ public class WorkerOldRefundManageLogic {
|
|
|
.eq(WebsitPartsOldRefundManage::getApplyNo, applyNo)
|
|
|
.update();
|
|
|
}
|
|
|
+
|
|
|
+ private List<WebsitStockDTO> createWebsitStockDTO(WebsitPartsOldRefundManage partsOldRefundManage, List<WebsitPartsOldRefundManageItem> partsOldRefundManageItems) {
|
|
|
+ final Storage storage = storageService.lambdaQuery()
|
|
|
+ .eq(Storage::getCompanyWechatId, partsOldRefundManage.getCompanyWechatId())
|
|
|
+ .eq(Storage::getWebsitId, partsOldRefundManage.getReceiveWebsitId())
|
|
|
+ .eq(Storage::getIsDefault, true)
|
|
|
+ .one();
|
|
|
+ List<WebsitStockDTO> shopStockDTOList = new ArrayList<>();
|
|
|
+ for (WebsitPartsOldRefundManageItem partsOldRefundManageItem : partsOldRefundManageItems) {
|
|
|
+ WebsitStockDTO sendShopStockDTO = new WebsitStockDTO();
|
|
|
+ sendShopStockDTO.setCompanyWechatId(partsOldRefundManage.getCompanyWechatId());
|
|
|
+ sendShopStockDTO.setCompanyWechatName(partsOldRefundManage.getCompanyWechatName());
|
|
|
+ sendShopStockDTO.setWebsitId(partsOldRefundManage.getReceiveWebsitId());
|
|
|
+ sendShopStockDTO.setWebsitName(partsOldRefundManage.getReceiveWebsitName());
|
|
|
+ sendShopStockDTO.setSdate(partsOldRefundManage.getRefundedTime());
|
|
|
+ sendShopStockDTO.setPartsWebsitId(partsOldRefundManage.getReceivePartsWebsitId());
|
|
|
+ sendShopStockDTO.setGoodsId(partsOldRefundManageItem.getNewPartsNumber());
|
|
|
+ sendShopStockDTO.setGoodsName(partsOldRefundManageItem.getNewPartsName());
|
|
|
+ sendShopStockDTO.setPrice(BigDecimal.ZERO);
|
|
|
+ sendShopStockDTO.setMaterialGroupName(partsOldRefundManageItem.getNewMaterialGroupName());
|
|
|
+ sendShopStockDTO.setGoodsStockUnit(partsOldRefundManageItem.getNewUnitName());
|
|
|
+ sendShopStockDTO.setVoucherNo(partsOldRefundManage.getApplyNo());
|
|
|
+ sendShopStockDTO.setApplyNo(partsOldRefundManage.getApplyNo());
|
|
|
+ sendShopStockDTO.setRef(partsOldRefundManage.getApplyNo());
|
|
|
+ sendShopStockDTO.setRefType(PartsRefTypeEnum.OLD_REFUND.getRemark());
|
|
|
+ sendShopStockDTO.setPartsAttr(PartsAttrEnum.OLD.getKey());
|
|
|
+ sendShopStockDTO.setChangeQty(partsOldRefundManageItem.getQty());
|
|
|
+ sendShopStockDTO.setDirectFlag(DirectFlagEnum.ADD.getKey());
|
|
|
+ sendShopStockDTO.setRemark(partsOldRefundManageItem.getRemark());
|
|
|
+ sendShopStockDTO.setOperateBy(partsOldRefundManage.getRefundedBy());
|
|
|
+ sendShopStockDTO.setOperateTime(partsOldRefundManage.getRefundedTime());
|
|
|
+ sendShopStockDTO.setStorageId(storage.getStorageId());
|
|
|
+ shopStockDTOList.add(sendShopStockDTO);
|
|
|
+ }
|
|
|
+ return shopStockDTOList;
|
|
|
+ }
|
|
|
}
|