|
@@ -1,33 +1,43 @@
|
|
|
package com.gree.mall.manager.logic.material.manage;
|
|
|
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.date.DateTime;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.poi.excel.ExcelReader;
|
|
|
import cn.hutool.poi.excel.ExcelUtil;
|
|
|
+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.commonmapper.MaterialMapper;
|
|
|
-import com.gree.mall.manager.enums.material.PartsRepairFlagEnum;
|
|
|
+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.worker.OldRefundManageInnerLogic;
|
|
|
-import com.gree.mall.manager.plus.entity.SysDictCompany;
|
|
|
-import com.gree.mall.manager.plus.entity.WebsitPartsOldRefundManage;
|
|
|
-import com.gree.mall.manager.plus.entity.WebsitPartsSettlementRecord;
|
|
|
-import com.gree.mall.manager.plus.service.SysDictCompanyService;
|
|
|
-import com.gree.mall.manager.plus.service.WebsitPartsOldRefundManageService;
|
|
|
-import com.gree.mall.manager.plus.service.WebsitPartsSettlementRecordService;
|
|
|
+import com.gree.mall.manager.logic.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;
|
|
|
+import com.gree.mall.manager.zfire.util.FieldUtils;
|
|
|
+import io.jsonwebtoken.lang.Collections;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.io.InputStream;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Objects;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.util.*;
|
|
|
import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -42,6 +52,241 @@ public class WorkerOldRefundManageLogic {
|
|
|
private final WebsitPartsOldRefundManageService websitPartsOldRefundManageService;
|
|
|
private final WebsitPartsSettlementRecordService websitPartsSettlementRecordService;
|
|
|
private final OldRefundManageInnerLogic oldRefundManageInnerLogic;
|
|
|
+ private final WebsitPartsOldRefundManageItemService websitPartsOldRefundManageItemService;
|
|
|
+ private final WebsitPartsOldRefundManageRecordService websitPartsOldRefundManageRecordService;
|
|
|
+ private final WebsitPartsRefundRecordService websitPartsRefundRecordService;
|
|
|
+ private final WorkerStockAccService workerStockAccService;
|
|
|
+
|
|
|
+ public IPage<OldRefundManageVO> pageList(ZfireParamBean zfireParamBean) {
|
|
|
+ AdminUserCom adminUser = commonLogic.getAdminUser();
|
|
|
+ FieldUtils.materialParam(zfireParamBean, OldRefundManageVO.class, adminUser);
|
|
|
+
|
|
|
+ return materialMapper.oldRefundManagePage(new Page(zfireParamBean.getPageNum(), zfireParamBean.getPageSize()), zfireParamBean);
|
|
|
+ }
|
|
|
+
|
|
|
+ public OldRefundManageBean detail(String applyNo) {
|
|
|
+ WebsitPartsOldRefundManage partsOldRefundManage = websitPartsOldRefundManageService.getById(applyNo);
|
|
|
+ if (Objects.isNull(partsOldRefundManage)) {
|
|
|
+ throw new RemoteServiceException("单据不存在");
|
|
|
+ }
|
|
|
+ List<WebsitPartsOldRefundManageItem> partsOldRefundManageItems = websitPartsOldRefundManageItemService.lambdaQuery()
|
|
|
+ .eq(WebsitPartsOldRefundManageItem::getApplyNo, applyNo)
|
|
|
+ .list();
|
|
|
+
|
|
|
+ OldRefundManageBean oldRefundManageBean = new OldRefundManageBean();
|
|
|
+ BeanUtils.copyProperties(partsOldRefundManage, oldRefundManageBean);
|
|
|
+
|
|
|
+
|
|
|
+ List<OldRefundManageItemBean> oldRefundManageItemBeanList = BeanUtil.copyToList(partsOldRefundManageItems, OldRefundManageItemBean.class);
|
|
|
+
|
|
|
+ // 查询执行记录
|
|
|
+ List<WebsitPartsOldRefundManageRecord> partsOldRefundManageRecords = websitPartsOldRefundManageRecordService.lambdaQuery()
|
|
|
+ .eq(WebsitPartsOldRefundManageRecord::getApplyNo, partsOldRefundManage.getApplyNo())
|
|
|
+ .list();
|
|
|
+
|
|
|
+ List<OldRefundManageRecordBean> oldRefundManageRecordBeans = BeanUtil.copyToList(partsOldRefundManageRecords, OldRefundManageRecordBean.class);
|
|
|
+
|
|
|
+ oldRefundManageBean.setPartsOldRefundManageRecordList(oldRefundManageRecordBeans);
|
|
|
+ oldRefundManageBean.setOldRefundManageItemBeanList(oldRefundManageItemBeanList);
|
|
|
+
|
|
|
+ return oldRefundManageBean;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void refund(String applyNo, String flag, String examineRemark) {
|
|
|
+ AdminUserCom adminUser = commonLogic.getAdminUser();
|
|
|
+ WebsitPartsOldRefundManage partsOldRefundManage = websitPartsOldRefundManageService.getById(applyNo);
|
|
|
+ if (Objects.isNull(partsOldRefundManage)) {
|
|
|
+ throw new RemoteServiceException("申请单号不存在");
|
|
|
+ }
|
|
|
+ if (PartsRepairFlagEnum.OUTSIDE.toString().equals(partsOldRefundManage.getRepairFlag())) {
|
|
|
+ throw new RemoteServiceException("申请单号不存在");
|
|
|
+ }
|
|
|
+ // 保内 flag=已返还
|
|
|
+ if (PartsRepairFlagEnum.INNER.toString().equals(partsOldRefundManage.getRepairFlag())) {
|
|
|
+ if (!partsOldRefundManage.getFlag().equals(PartsOrderFlagEnum.AGREE.getKey())) {
|
|
|
+ throw new RemoteServiceException(applyNo + "单据状态:"
|
|
|
+ + BaseEnum.keyToValue(PartsOrderFlagEnum.class, partsOldRefundManage.getFlag()) + ",失败");
|
|
|
+ }
|
|
|
+ if (!(PartsOrderFlagEnum.REFUNDED.getKey() + "|" + PartsOrderFlagEnum.NOTREFUND.getKey()).contains(flag)) {
|
|
|
+ throw new RemoteServiceException("状态不正确");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ String refType = PartsRefTypeEnum.OLD_REFUND.toString();
|
|
|
+
|
|
|
+ DateTime curDate = DateUtil.date();
|
|
|
+ partsOldRefundManage.setExamineRemark(examineRemark)
|
|
|
+ .setFlag(flag)
|
|
|
+ .setExamineBy(adminUser.getNickName())
|
|
|
+ .setExamineTime(curDate)
|
|
|
+ .setRefundedBy(adminUser.getNickName())
|
|
|
+ .setRefundedTime(curDate);
|
|
|
+
|
|
|
+ // 更新
|
|
|
+ partsOldRefundManage.updateById();
|
|
|
+
|
|
|
+ List<WebsitPartsOldRefundManageItem> partsOldRefundManageItems = websitPartsOldRefundManageItemService.lambdaQuery()
|
|
|
+ .eq(WebsitPartsOldRefundManageItem::getApplyNo, partsOldRefundManage.getApplyNo())
|
|
|
+ .list();
|
|
|
+
|
|
|
+ // 已返还的处理
|
|
|
+ if (flag.equals(PartsOrderFlagEnum.REFUNDED.getKey())) {
|
|
|
+ // 减师傅临占旧件库存
|
|
|
+// List<WorkerStockDTO> workerStockDTOList = oldRefundManageInnerLogic.createWorkerStockDTO(partsOldRefundManage, partsOldRefundManageItems,
|
|
|
+// refType, PartsStockPartsAttrEnum.TEMP_OLD.toString(), null, flag);
|
|
|
+// partsStockLogic.handleWorkerStock(workerStockDTOList);
|
|
|
+
|
|
|
+ // 网点旧件库存增加
|
|
|
+// List<ShopStockDTO> shopStockDTOList = this.createShopStockDTO(partsOldRefundManage, partsOldRefundManageItems);
|
|
|
+// partsStockLogic.handleShopStock(shopStockDTOList);
|
|
|
+
|
|
|
+ List<WebsitPartsOldRefundManageRecord> partsNewRefundManageRecords = websitPartsOldRefundManageRecordService.lambdaQuery()
|
|
|
+ .eq(WebsitPartsOldRefundManageRecord::getApplyNo, partsOldRefundManage.getApplyNo())
|
|
|
+ .list();
|
|
|
+ List<WebsitPartsRefundRecord> partsRefundRecordList = this.createRefundRecord(partsOldRefundManage, partsNewRefundManageRecords, refType);
|
|
|
+ if (CollectionUtil.isNotEmpty(partsRefundRecordList))
|
|
|
+ websitPartsRefundRecordService.saveBatch(partsRefundRecordList);
|
|
|
+ } else {
|
|
|
+ // 加师傅旧件库存
|
|
|
+// List<WorkerStockDTO> workerStockDTOList = oldRefundManageInnerLogic.createWorkerStockDTO(partsOldRefundManage, partsOldRefundManageItems,
|
|
|
+// refType, PartsStockPartsAttrEnum.TEMP_OLD.toString(), PartsStockPartsAttrEnum.OLD.toString(), flag);
|
|
|
+// partsStockLogic.handleWorkerStock(workerStockDTOList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<WebsitPartsRefundRecord> createRefundRecord(WebsitPartsOldRefundManage partsOldRefundManage, List<WebsitPartsOldRefundManageRecord> partsNewRefundManageRecords, String refType) {
|
|
|
+ List<WebsitPartsRefundRecord> partsRefundRecordList = new ArrayList<>();
|
|
|
+ for (WebsitPartsOldRefundManageRecord partsOldRefundManageRecord : partsNewRefundManageRecords) {
|
|
|
+ if (Objects.isNull(partsOldRefundManageRecord.getRefundAmountMode())
|
|
|
+ || partsOldRefundManageRecord.getRefundAmountMode().equals(PayTypeEnum.CASH.toString())) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ WebsitPartsRefundRecord partsRefundRecord = new WebsitPartsRefundRecord();
|
|
|
+ partsRefundRecord.setRefundNo(IdWorker.getIdStr())
|
|
|
+ .setCompanyWechatId(partsOldRefundManage.getCompanyWechatId())
|
|
|
+ .setCompanyWechatName(partsOldRefundManage.getCompanyWechatName())
|
|
|
+ .setRecordId(partsOldRefundManageRecord.getId())
|
|
|
+ .setWebsitId(partsOldRefundManage.getReceiveWebsitId())
|
|
|
+ .setWebsitName(partsOldRefundManage.getReceiveWebsitName())
|
|
|
+ .setPartsWebsitId(partsOldRefundManage.getReceivePartsWebsitId())
|
|
|
+ .setIdentity(partsOldRefundManage.getIdentity())
|
|
|
+ .setWorkerId(partsOldRefundManage.getWorkerId())
|
|
|
+ .setWorkerName(partsOldRefundManage.getWorkerName())
|
|
|
+ .setSalesId(partsOldRefundManageRecord.getSalesId())
|
|
|
+ .setSalesItemId(partsOldRefundManageRecord.getSalesItemId())
|
|
|
+ .setRef(partsOldRefundManage.getApplyNo())
|
|
|
+ .setRefType(refType)
|
|
|
+ .setPartsNumber(partsOldRefundManageRecord.getPartsNumber())
|
|
|
+ .setPartsName(partsOldRefundManageRecord.getPartsName())
|
|
|
+ .setRefundAmount(partsOldRefundManageRecord.getRefundAmount())
|
|
|
+ .setRefundState(PartsRefundStateEnum.WAIT.getKey())
|
|
|
+ .setIsExec(IsEnum.N.getValue())
|
|
|
+ .setCreateTime(DateUtil.date());
|
|
|
+ partsRefundRecordList.add(partsRefundRecord);
|
|
|
+ }
|
|
|
+ return partsRefundRecordList;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 保外新件转销售审核
|
|
|
+ * @param applyNo
|
|
|
+ * @param isDisc
|
|
|
+ * @param examineRemark
|
|
|
+ */
|
|
|
+ @Transactional
|
|
|
+ public void examine(String applyNo, Boolean isDisc, String examineRemark) {
|
|
|
+ AdminUserCom adminUser = commonLogic.getAdminUser();
|
|
|
+ WebsitPartsOldRefundManage partsOldRefundManage = websitPartsOldRefundManageService.getById(applyNo);
|
|
|
+ if (Objects.isNull(partsOldRefundManage)) {
|
|
|
+ throw new RemoteServiceException("申请单号不存在");
|
|
|
+ }
|
|
|
+ if (PartsRepairFlagEnum.INNER.toString().equals(partsOldRefundManage.getRepairFlag())) {
|
|
|
+ throw new RemoteServiceException("申请单号不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ String refType = PartsRefTypeEnum.OUTSIDE_TO_SALES.toString();
|
|
|
+ String flag = isDisc ? PartsOrderFlagEnum.AGREE.getKey() : PartsOrderFlagEnum.WAIT_REVIEW.toString();
|
|
|
+
|
|
|
+ DateTime curDate = DateUtil.date();
|
|
|
+ partsOldRefundManage.setExamineRemark(examineRemark)
|
|
|
+ .setIsDisc(isDisc)
|
|
|
+ .setFlag(flag)
|
|
|
+ .setExamineBy(adminUser.getNickName())
|
|
|
+ .setExamineTime(curDate);
|
|
|
+
|
|
|
+ // 更新
|
|
|
+ partsOldRefundManage.updateById();
|
|
|
+
|
|
|
+ List<WebsitPartsOldRefundManageItem> partsOldRefundManageItems = websitPartsOldRefundManageItemService.lambdaQuery()
|
|
|
+ .eq(WebsitPartsOldRefundManageItem::getApplyNo, partsOldRefundManage.getApplyNo())
|
|
|
+ .list();
|
|
|
+
|
|
|
+ // 已审批的处理
|
|
|
+ if (flag.equals(PartsOrderFlagEnum.AGREE.toString())) {
|
|
|
+ // 减师傅临占旧件库存
|
|
|
+// List<WorkerStockDTO> workerStockDTOList = oldRefundManageInnerLogic.createWorkerStockDTO(partsOldRefundManage, partsOldRefundManageItems,
|
|
|
+// refType, PartsStockPartsAttrEnum.TEMP_OLD.toString(), null, flag);
|
|
|
+// partsStockLogic.handleWorkerStock(workerStockDTOList);
|
|
|
+
|
|
|
+ List<WebsitPartsOldRefundManageRecord> partsNewRefundManageRecords = websitPartsOldRefundManageRecordService.lambdaQuery()
|
|
|
+ .eq(WebsitPartsOldRefundManageRecord::getApplyNo, partsOldRefundManage.getApplyNo())
|
|
|
+ .list();
|
|
|
+ List<WebsitPartsRefundRecord> partsRefundRecordList = this.createRefundRecord(partsOldRefundManage, partsNewRefundManageRecords, refType);
|
|
|
+ if (CollectionUtil.isNotEmpty(partsRefundRecordList))
|
|
|
+ websitPartsRefundRecordService.saveBatch(partsRefundRecordList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 保外新件转销售复核
|
|
|
+ * @param applyNo
|
|
|
+ * @param reviewResult
|
|
|
+ * @param reviewRemark
|
|
|
+ */
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void review(String applyNo, Boolean reviewResult, String reviewRemark) {
|
|
|
+ AdminUserCom adminUser = commonLogic.getAdminUser();
|
|
|
+ WebsitPartsOldRefundManage partsOldRefundManage = websitPartsOldRefundManageService.getById(applyNo);
|
|
|
+ if (Objects.isNull(partsOldRefundManage)) {
|
|
|
+ throw new RemoteServiceException("申请单号不存在");
|
|
|
+ }
|
|
|
+ if (PartsRepairFlagEnum.INNER.getKey().equals(partsOldRefundManage.getRepairFlag())) {
|
|
|
+ throw new RemoteServiceException("申请单号不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ String refType = PartsRefTypeEnum.OUTSIDE_TO_SALES.getKey();
|
|
|
+ String flag = PartsOrderFlagEnum.REVIEWED.getKey();
|
|
|
+
|
|
|
+ DateTime curDate = DateUtil.date();
|
|
|
+ partsOldRefundManage.setReviewRemark(reviewRemark)
|
|
|
+ .setReviewResult(reviewResult)
|
|
|
+ .setFlag(flag)
|
|
|
+ .setReviewBy(adminUser.getNickName())
|
|
|
+ .setReviewTime(curDate);
|
|
|
+
|
|
|
+ // 更新
|
|
|
+ partsOldRefundManage.updateById();
|
|
|
+
|
|
|
+ List<WebsitPartsOldRefundManageItem> partsOldRefundManageItems = websitPartsOldRefundManageItemService.lambdaQuery()
|
|
|
+ .eq(WebsitPartsOldRefundManageItem::getApplyNo, partsOldRefundManage.getApplyNo())
|
|
|
+ .list();
|
|
|
+
|
|
|
+ // 已复核的处理
|
|
|
+ // 减师傅临占旧件库存
|
|
|
+// List<WorkerStockDTO> workerStockDTOList = oldRefundManageInnerLogic.createWorkerStockDTO(partsOldRefundManage, partsOldRefundManageItems,
|
|
|
+// refType, PartsStockPartsAttrEnum.TEMP_OLD.toString(), null, flag);
|
|
|
+//
|
|
|
+// partsStockLogic.handleWorkerStock(workerStockDTOList);
|
|
|
+
|
|
|
+ if (reviewResult) {
|
|
|
+ List<WebsitPartsOldRefundManageRecord> partsNewRefundManageRecords = websitPartsOldRefundManageRecordService.lambdaQuery()
|
|
|
+ .eq(WebsitPartsOldRefundManageRecord::getApplyNo, partsOldRefundManage.getApplyNo())
|
|
|
+ .list();
|
|
|
+ List<WebsitPartsRefundRecord> partsRefundRecordList = this.createRefundRecord(partsOldRefundManage, partsNewRefundManageRecords, refType);
|
|
|
+ if (CollectionUtil.isNotEmpty(partsRefundRecordList))
|
|
|
+ websitPartsRefundRecordService.saveBatch(partsRefundRecordList);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 保内结算状态导入
|
|
@@ -168,7 +413,112 @@ public class WorkerOldRefundManageLogic {
|
|
|
return msg.toString();
|
|
|
}
|
|
|
|
|
|
- public String importOutsideSettlement(List<Object> objects) {
|
|
|
- return null;
|
|
|
+ public String importOutsideSettlement(List<Object> objects) throws Exception {
|
|
|
+ if(Collections.isEmpty(objects)) {
|
|
|
+ throw new RemoteServiceException("导入数据不能为空");
|
|
|
+ }
|
|
|
+ StringBuilder msg = new StringBuilder();
|
|
|
+ LinkedHashSet<String> pgIds = new LinkedHashSet<>();
|
|
|
+ for (Object data : objects) {
|
|
|
+ List<String> row = (List<String>) data;
|
|
|
+ pgIds.add(row.get(0));
|
|
|
+ }
|
|
|
+
|
|
|
+ String repairFlag = PartsRepairFlagEnum.OUTSIDE.toString();
|
|
|
+ // 截取指定数量后分段查询
|
|
|
+ List<List<String>> splitList = CollUtil.split(pgIds, 500);
|
|
|
+ for (List<String> pgIdList : splitList) {
|
|
|
+ final List<WebsitPartsOldRefundManage> partsOldRefundManageList = websitPartsOldRefundManageService.lambdaQuery()
|
|
|
+ .in(WebsitPartsOldRefundManage::getPgId, pgIdList)
|
|
|
+ .eq(WebsitPartsOldRefundManage::getRepairFlag, repairFlag)
|
|
|
+ .list();
|
|
|
+ if(!Collections.isEmpty(partsOldRefundManageList)) {
|
|
|
+ final Map<String, List<WebsitPartsOldRefundManage>> partsOldRefundManageMap =
|
|
|
+ Collections.isEmpty(partsOldRefundManageList) ? null :
|
|
|
+ partsOldRefundManageList.stream().collect(Collectors.groupingBy(WebsitPartsOldRefundManage::getPgId));
|
|
|
+ List<WebsitPartsOldRefundManage> updateList = new ArrayList<>();
|
|
|
+// List<String> errorList = new ArrayList<>();
|
|
|
+ for (Object object : objects) {
|
|
|
+ List<String> row = (List<String>) object;
|
|
|
+ if (Objects.nonNull(partsOldRefundManageMap)
|
|
|
+ && partsOldRefundManageMap.containsKey(row.get(0))
|
|
|
+ && CollectionUtil.isNotEmpty(partsOldRefundManageMap.get(row.get(0)))) {
|
|
|
+ List<WebsitPartsOldRefundManage> oldRefundList = partsOldRefundManageMap.get(row.get(0));
|
|
|
+ for (WebsitPartsOldRefundManage oldRefund : oldRefundList) {
|
|
|
+ if (Objects.isNull(oldRefund.getSettlementState())
|
|
|
+ || !oldRefund.getSettlementState()) {
|
|
|
+ oldRefundManageInnerLogic.submit(oldRefund);
|
|
|
+ updateList.add(oldRefund);
|
|
|
+ }
|
|
|
+// else {
|
|
|
+// errorList.add(row.get(0) + "已结算,无需重复导入");
|
|
|
+// }
|
|
|
+ }
|
|
|
+ }
|
|
|
+// else {
|
|
|
+// errorList.add("没有找到该工单派工id" + row.get(0));
|
|
|
+// }
|
|
|
+ }
|
|
|
+ if(!Collections.isEmpty(updateList)) {
|
|
|
+ msg.append("成功导入处理 "+updateList.size()+" 条;");
|
|
|
+ }
|
|
|
+// if(!Collections.isEmpty(errorList)) {
|
|
|
+// msg.append("导入失败"+errorList.size()+"条, 异常信息: "+JSONObject.toJSONString(errorList));
|
|
|
+// }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return msg.toString();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Transactional
|
|
|
+ public void transferFlag(String applyNo) {
|
|
|
+ WebsitPartsOldRefundManage refundManage = websitPartsOldRefundManageService.getById(applyNo);
|
|
|
+ if (!refundManage.getFlag().equals(PartsOrderFlagEnum.SAVE.getKey())) {
|
|
|
+ throw new RemoteServiceException("非保存状态,转换失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ List<WebsitPartsOldRefundManageRecord> records = websitPartsOldRefundManageRecordService.lambdaQuery()
|
|
|
+ .eq(WebsitPartsOldRefundManageRecord::getApplyNo, applyNo)
|
|
|
+ .list();
|
|
|
+ // 取反
|
|
|
+ String refType = PartsRepairFlagEnum.INNER.getKey().equals(refundManage.getRepairFlag()) ?
|
|
|
+ PartsRefTypeEnum.OUTSIDE_TO_SALES.getKey() :
|
|
|
+ PartsRefTypeEnum.OLD_REFUND.getKey();
|
|
|
+
|
|
|
+ // 取反
|
|
|
+ String repairFlag = PartsRepairFlagEnum.INNER.getKey().equals(refundManage.getRepairFlag()) ?
|
|
|
+ PartsRepairFlagEnum.OUTSIDE.getKey() :
|
|
|
+ PartsRepairFlagEnum.INNER.getKey();
|
|
|
+
|
|
|
+ workerStockAccService.lambdaUpdate()
|
|
|
+ .set(WorkerStockAcc::getRefType, refType)
|
|
|
+ .eq(WorkerStockAcc::getRef, applyNo)
|
|
|
+ .eq(WorkerStockAcc::getCompanyWechatId, refundManage.getCompanyWechatId())
|
|
|
+ .in(WorkerStockAcc::getPartsAttr, PartsAttrEnum.NEW.getKey(), PartsAttrEnum.OLD.getKey())
|
|
|
+ .update();
|
|
|
+
|
|
|
+ PartsRefundRecordDTO dto = new PartsRefundRecordDTO();
|
|
|
+
|
|
|
+ BigDecimal totalRefundAmount = BigDecimal.ZERO;
|
|
|
+
|
|
|
+ for (WebsitPartsOldRefundManageRecord record : records) {
|
|
|
+ BigDecimal amount = repairFlag.equals(PartsRepairFlagEnum.INNER.toString()) ?
|
|
|
+ record.getSalesPrice().multiply(record.getQty()) :
|
|
|
+ dto.computeDiffAmount(record.getSalesPrice(), record.getSecondPrice(), record.getQty());
|
|
|
+ websitPartsOldRefundManageRecordService.lambdaUpdate()
|
|
|
+ .set(WebsitPartsOldRefundManageRecord::getRefundAmount, amount)
|
|
|
+ .set(WebsitPartsOldRefundManageRecord::getRepairFlag, repairFlag)
|
|
|
+ .eq(WebsitPartsOldRefundManageRecord::getId, record.getId())
|
|
|
+ .update();
|
|
|
+ totalRefundAmount = totalRefundAmount.add(amount);
|
|
|
+ }
|
|
|
+
|
|
|
+ websitPartsOldRefundManageService.lambdaUpdate()
|
|
|
+ .set(WebsitPartsOldRefundManage::getRepairFlag, repairFlag)
|
|
|
+ .set(WebsitPartsOldRefundManage::getRefundAmount, totalRefundAmount)
|
|
|
+ .eq(WebsitPartsOldRefundManage::getApplyNo, applyNo)
|
|
|
+ .update();
|
|
|
}
|
|
|
}
|