|
@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.fjhx.victoriatourist.entity.jd.dto.JdOrderSelectDto;
|
|
import com.fjhx.victoriatourist.entity.jd.dto.JdOrderSelectDto;
|
|
@@ -11,8 +12,21 @@ import com.fjhx.victoriatourist.entity.jd.po.JdOrderDetails;
|
|
import com.fjhx.victoriatourist.entity.jd.vo.JdOrderDetailsVo;
|
|
import com.fjhx.victoriatourist.entity.jd.vo.JdOrderDetailsVo;
|
|
import com.fjhx.victoriatourist.mapper.jd.JdOrderDetailsMapper;
|
|
import com.fjhx.victoriatourist.mapper.jd.JdOrderDetailsMapper;
|
|
import com.fjhx.victoriatourist.service.jd.JdOrderDetailsService;
|
|
import com.fjhx.victoriatourist.service.jd.JdOrderDetailsService;
|
|
|
|
+import com.fjhx.victoriatourist.service.jd.constants.RunParamConstant;
|
|
|
|
+import com.fjhx.wms.entity.stock.emums.JournalType;
|
|
|
|
+import com.fjhx.wms.entity.stock.po.Stock;
|
|
|
|
+import com.fjhx.wms.entity.stock.po.StockJournal;
|
|
|
|
+import com.fjhx.wms.entity.stock.po.StockJournalDetails;
|
|
|
|
+import com.fjhx.wms.service.stock.StockJournalDetailsService;
|
|
|
|
+import com.fjhx.wms.service.stock.StockJournalService;
|
|
|
|
+import com.fjhx.wms.service.stock.StockService;
|
|
|
|
+import com.ruoyi.common.utils.SecurityUtils;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
|
|
+import java.math.BigDecimal;
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.Date;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
@@ -26,6 +40,12 @@ import java.util.List;
|
|
*/
|
|
*/
|
|
@Service
|
|
@Service
|
|
public class JdOrderDetailsServiceImpl extends ServiceImpl<JdOrderDetailsMapper, JdOrderDetails> implements JdOrderDetailsService {
|
|
public class JdOrderDetailsServiceImpl extends ServiceImpl<JdOrderDetailsMapper, JdOrderDetails> implements JdOrderDetailsService {
|
|
|
|
+ @Resource
|
|
|
|
+ private StockService stockService;
|
|
|
|
+ @Resource
|
|
|
|
+ private StockJournalService stockJournalService;
|
|
|
|
+ @Resource
|
|
|
|
+ private StockJournalDetailsService stockJournalDetailsService;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public List<JdOrderDetailsVo> findListByJdOrderId(Long jdOrderId) {
|
|
public List<JdOrderDetailsVo> findListByJdOrderId(Long jdOrderId) {
|
|
@@ -49,4 +69,118 @@ public class JdOrderDetailsServiceImpl extends ServiceImpl<JdOrderDetailsMapper,
|
|
|
|
|
|
return voPage;
|
|
return voPage;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void dealEx(JdOrderDetailsVo vo) {
|
|
|
|
+ JdOrderDetails byId = getById(vo.getId());
|
|
|
|
+ if (ObjectUtil.isNull(byId)){
|
|
|
|
+ throw new RuntimeException("数据不存在");
|
|
|
|
+ }
|
|
|
|
+ byId.setExHandle(vo.getExHandle());
|
|
|
|
+ byId.setHandleStatus(RunParamConstant.EXCEPTION_STATE_TREATED);
|
|
|
|
+ byId.setHandleTime(new Date());
|
|
|
|
+ Long userId = SecurityUtils.getUserId();
|
|
|
|
+ byId.setHandleUser(userId);
|
|
|
|
+
|
|
|
|
+ switch (vo.getExHandle()){
|
|
|
|
+ case RunParamConstant.SHORTAGE_DAMAGE+","+RunParamConstant.SHORTAGE_CLAIM:
|
|
|
|
+ fillRemark(vo, byId);
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ throw new RuntimeException("异常处理状态异常");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ updateById(byId);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 填充备注
|
|
|
|
+ * @author hj
|
|
|
|
+ * @date 2024/1/15 22:41
|
|
|
|
+ */
|
|
|
|
+ private void fillRemark(JdOrderDetailsVo vo, JdOrderDetails jdOrderDetails){
|
|
|
|
+ String remark = vo.getRemark();
|
|
|
|
+ if(StrUtil.isBlank(remark)){
|
|
|
|
+ throw new RuntimeException("备注不能为空");
|
|
|
|
+ }
|
|
|
|
+ jdOrderDetails.setRemark(remark);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 填写快递单号
|
|
|
|
+ * @author hj
|
|
|
|
+ * @date 2024/1/15 22:42
|
|
|
|
+ */
|
|
|
|
+ private void fillExpressNo(JdOrderDetailsVo vo, JdOrderDetails jdOrderDetails) {
|
|
|
|
+ String expressNo = vo.getExpressNo();
|
|
|
|
+ if (StrUtil.isBlank(expressNo)) {
|
|
|
|
+ throw new RuntimeException("快递单号不能为空");
|
|
|
|
+ }
|
|
|
|
+ jdOrderDetails.setExpressNo(expressNo);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 增加库存
|
|
|
|
+ * @param vo
|
|
|
|
+ * @param jdOrderDetails
|
|
|
|
+ */
|
|
|
|
+ private void addStock(JdOrderDetailsVo vo, JdOrderDetails jdOrderDetails) {
|
|
|
|
+ //操作库存及记录
|
|
|
|
+ operateStock(vo.getWarehouseId(), RunParamConstant.INBOUND, jdOrderDetails.getQuantity());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 减少库存
|
|
|
|
+ * @author hj
|
|
|
|
+ * @date 2024/1/15 22:44
|
|
|
|
+ */
|
|
|
|
+ private void reduceStock(JdOrderDetailsVo vo, JdOrderDetails jdOrderDetails) {
|
|
|
|
+ //操作库存及记录
|
|
|
|
+ operateStock(vo.getWarehouseId(), RunParamConstant.OUTBOUND, jdOrderDetails.getQuantity());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 操作库存及记录
|
|
|
|
+ * @param warehouseId 仓库id
|
|
|
|
+ * @param type 类型 1入库 2出库 3维多利亚冻结库存入库 4维多利亚待出库次品库存
|
|
|
|
+ * @param quantity 操作数量
|
|
|
|
+ */
|
|
|
|
+ private void operateStock(Long warehouseId, int type, BigDecimal quantity) {
|
|
|
|
+ //要操作的数据
|
|
|
|
+ List<Stock> stockList = new ArrayList<>();
|
|
|
|
+ Stock stock = new Stock();
|
|
|
|
+ stock.setProductId(1L);
|
|
|
|
+ stock.setQuantity(quantity);
|
|
|
|
+ stockList.add(stock);
|
|
|
|
+
|
|
|
|
+ //操作库存
|
|
|
|
+// stockService.ModifyInventory(type, stockList, warehouseId);
|
|
|
|
+
|
|
|
|
+ //创建出入库记录
|
|
|
|
+ StockJournal stockJournal = new StockJournal();
|
|
|
|
+ stockJournal.setOpType(1);//1入库2出库
|
|
|
|
+ stockJournal.setType(JournalType.JD_BACK_IN.getDetailType());//流水类型 JournalType枚举
|
|
|
|
+ stockJournal.setCode("流水编号");//流水编号,没规范赋值业务编号也行
|
|
|
|
+ stockJournal.setWarehouseId(warehouseId);//仓库id
|
|
|
|
+ stockJournal.setBusinessId(1L);//业务id
|
|
|
|
+ stockJournal.setLinkCode("业务编号");//业务编号
|
|
|
|
+ stockJournalService.save(stockJournal);
|
|
|
|
+
|
|
|
|
+ //保存出入库流水明细
|
|
|
|
+ List<StockJournalDetails> stockJournalDetailsList = new ArrayList<>();
|
|
|
|
+ StockJournalDetails stockJournalDetails = new StockJournalDetails();
|
|
|
|
+ stockJournalDetails.setId(IdWorker.getId());
|
|
|
|
+ stockJournalDetails.setBusinessDetailsId(1L);//业务明细id
|
|
|
|
+ stockJournalDetails.setQuantity(BigDecimal.ZERO);//操作数量;
|
|
|
|
+ stockJournalDetails.setProductId(1L);//操作产品id
|
|
|
|
+ stockJournalDetails.setStockJournalId(stockJournal.getId());//流水主表id
|
|
|
|
+ stockJournalDetailsList.add(stockJournalDetails);
|
|
|
|
+ stockJournalDetailsService.saveBatch(stockJournalDetailsList);
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|