|
@@ -5,13 +5,13 @@ import cn.hutool.core.date.DateUtil;
|
|
|
import com.google.common.collect.ImmutableBiMap;
|
|
|
import com.kmall.admin.dto.StockChangeDto;
|
|
|
import com.kmall.admin.dto.StockChangeRecordDto;
|
|
|
+import com.kmall.admin.entity.MerchEntity;
|
|
|
import com.kmall.admin.entity.StoreEntity;
|
|
|
+import com.kmall.admin.entity.ThirdMerchantBizEntity;
|
|
|
import com.kmall.admin.entity.haikong.StockChangeRecordEntity;
|
|
|
import com.kmall.admin.fromcomm.entity.SysUserEntity;
|
|
|
import com.kmall.admin.haikong.constant.Constants;
|
|
|
-import com.kmall.admin.service.GoodsService;
|
|
|
-import com.kmall.admin.service.ProductStoreRelaService;
|
|
|
-import com.kmall.admin.service.StoreService;
|
|
|
+import com.kmall.admin.service.*;
|
|
|
import com.kmall.admin.service.haikong.StockChangeRecordService;
|
|
|
import com.kmall.admin.utils.ShiroUtils;
|
|
|
import com.kmall.common.utils.MapBeanUtil;
|
|
@@ -59,6 +59,14 @@ public class StockChangeServiceImpl implements StockChangeService {
|
|
|
@Autowired
|
|
|
private GoodsService goodsService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ThirdMerchantBizService thirdMerchantBizService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private MerchService merchService;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
private static final Logger log = LoggerFactory.getLogger(StockChangeServiceImpl.class);
|
|
|
|
|
|
@Override
|
|
@@ -78,6 +86,37 @@ public class StockChangeServiceImpl implements StockChangeService {
|
|
|
|
|
|
@Override
|
|
|
public int save(StockChangeEntity stockChange) {
|
|
|
+ List<StockChangeEntity> stockChangeEntities = stockChangeDao.queryListByIds(stockChange.getId());
|
|
|
+ if (!stockChangeEntities.isEmpty()){
|
|
|
+ log.info("工单号已存在:{}",stockChange.getId());
|
|
|
+ throw new RRException("工单号已存在!");
|
|
|
+ }
|
|
|
+ MerchEntity merchEntity = merchService.queryByMerchSn(stockChange.getMerchSn());
|
|
|
+ if (Objects.isNull(merchEntity)){
|
|
|
+ log.info("商户名称查询不到:{}",stockChange.getMerchSn());
|
|
|
+ throw new RRException("商户编号不存在:"+stockChange.getMerchSn());
|
|
|
+ }
|
|
|
+
|
|
|
+ StoreEntity storeEntity = storeService.queryObject(stockChange.getStoreId());
|
|
|
+ if (Objects.isNull(storeEntity)){
|
|
|
+ log.info("门店名称查询不到:{}",stockChange.getStoreId());
|
|
|
+ throw new RRException("门店id不存在:"+stockChange.getStoreId());
|
|
|
+ }
|
|
|
+ ThirdMerchantBizEntity thirdMerchangByCode = thirdMerchantBizService.getThirdMerchangByCode(stockChange.getThirdMerchSn());
|
|
|
+ if (Objects.isNull(thirdMerchangByCode)){
|
|
|
+
|
|
|
+
|
|
|
+ throw new RRException("第三方商户代码不存在:"+stockChange.getThirdMerchSn());
|
|
|
+ }
|
|
|
+ //商户名称
|
|
|
+ stockChange.setMerch(merchEntity.getMerchName());
|
|
|
+ //门店名称
|
|
|
+ stockChange.setStore(storeEntity.getStoreName());
|
|
|
+ //第三方商户名称
|
|
|
+ stockChange.setThirdMerch(thirdMerchangByCode.getThirdPartyMerchName());
|
|
|
+ SysUserEntity userEntity = ShiroUtils.getUserEntity();
|
|
|
+ stockChange.setCreateBy(userEntity.getUsername());
|
|
|
+ stockChange.setCreateTime(new Date());
|
|
|
return stockChangeDao.save(stockChange);
|
|
|
}
|
|
|
|
|
@@ -198,11 +237,15 @@ public class StockChangeServiceImpl implements StockChangeService {
|
|
|
// 更新库存
|
|
|
List<StockChangeEntity> inChangeEntities = new ArrayList<>();
|
|
|
List<StockChangeEntity> outChangeEntities = new ArrayList<>();
|
|
|
+ List<StockChangeEntity> stockChangeEntities = queryListByIds(ids);
|
|
|
// 审核成功才需要更新库存
|
|
|
if (Constants.AuditStatus.AUDIT_SUCCESS.getType().equals(type)) {
|
|
|
- List<StockChangeEntity> stockChangeEntities = queryListByIds(ids);
|
|
|
|
|
|
- stockChangeEntities.forEach(stockChangeEntity -> {
|
|
|
+
|
|
|
+ stockChangeEntities.stream().filter(stockChangeEntity -> {
|
|
|
+ log.info("工单号为:{}的审核状态为成功",stockChangeEntity.getId());
|
|
|
+ return !stockChangeEntity.getAudit().equals(Constants.AuditStatus.AUDIT_SUCCESS.getType());
|
|
|
+ }).peek(stockChangeEntity -> {
|
|
|
String type1 = stockChangeEntity.getType();
|
|
|
if (Constants.StockChangeType.item_0.getType().equals(type1)
|
|
|
|| Constants.StockChangeType.item_1.getType().equals(type1)) {
|
|
@@ -226,9 +269,25 @@ public class StockChangeServiceImpl implements StockChangeService {
|
|
|
productStoreRelaService.updateStockNumberByOutbound(stockChangeRecordEntities);
|
|
|
goodsService.updateStockNumberByOutbound(stockChangeRecordEntities);
|
|
|
}
|
|
|
+ }else if (Constants.AuditStatus.AUDIT_REJECT.getType().equals(type)){
|
|
|
+ ArrayList<String> crjectIdList = new ArrayList<>();
|
|
|
+ for (StockChangeEntity stockChangeEntity : stockChangeEntities) {
|
|
|
+ if (!stockChangeEntity.getAudit().equals(Constants.AuditStatus.AUDIT_SUCCESS.getType())){
|
|
|
+ crjectIdList.add(stockChangeEntity.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (crjectIdList.isEmpty()){
|
|
|
+ log.info("修改出入库单审核状态时,可修改的单号为空!");
|
|
|
+ throw new RRException("选中的单号都为审核成功");
|
|
|
+ }
|
|
|
+ ids = crjectIdList.toArray(new String[crjectIdList.size()]);
|
|
|
}
|
|
|
|
|
|
- stockChangeDao.updateAuditStatus(ids, type);
|
|
|
+ HashMap<String, Object> map = new HashMap<>();
|
|
|
+ map.put("auditBy", ShiroUtils.getUserEntity().getUsername());
|
|
|
+ map.put("auditTime",new Date());
|
|
|
+ map.put("type",type);
|
|
|
+ stockChangeDao.updateAuditStatus(map,ids);
|
|
|
}
|
|
|
|
|
|
@Override
|