|
@@ -49,8 +49,8 @@ import com.fs.hisStore.domain.FsStoreOrderScrm;
|
|
|
import com.fs.hisStore.domain.FsStorePaymentScrm;
|
|
|
import com.fs.hisStore.mapper.FsStoreOrderScrmMapper;
|
|
|
import com.fs.hisStore.mapper.FsStorePaymentScrmMapper;
|
|
|
-import com.fs.hisStore.param.FsStoreOrderRefundByProductParam;
|
|
|
import com.fs.hisStore.service.IFsStoreOrderLogsScrmService;
|
|
|
+import com.fs.hisStore.service.IFsStoreOrderScrmService;
|
|
|
import com.fs.hisapi.domain.ApiResponse;
|
|
|
import com.fs.hisapi.param.CreateOrderParam;
|
|
|
import com.fs.hisapi.param.RecipeDetailParam;
|
|
@@ -666,28 +666,38 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
|
|
|
|
|
|
@Override
|
|
|
public R createOrderByPackageOrder(FsPackageOrder packageOrder) {
|
|
|
- if (packageOrder.getDoctorId() == null) {
|
|
|
- Long doctorID = iFsDoctorService.selectFsDoctorDoctorByPackage();
|
|
|
- packageOrder.setDoctorId(doctorID);
|
|
|
- }
|
|
|
+ logger.info("111111111111111");
|
|
|
+
|
|
|
+ logger.info("2222222222222");
|
|
|
FsPackage fsPackage = fsPackageMapper.selectFsPackageByPackageId(packageOrder.getPackageId());
|
|
|
JSONArray objects = JSONUtil.parseArray(fsPackage.getProductJson());
|
|
|
List<FsPackagePruductDTO> products = JSONUtil.toList(objects, FsPackagePruductDTO.class);
|
|
|
-
|
|
|
+ logger.info("3333333333333333333");
|
|
|
Map<String, Object> packageJson = (Map) JSON.parse(packageOrder.getPackageJson());
|
|
|
+ logger.info("55555555555555555555");
|
|
|
Integer packageSubType = (Integer) packageJson.get("packageSubType");
|
|
|
- if (packageSubType == 3) {
|
|
|
- inquiryOrderService.createOrderByPackageOrderStatus4(packageOrder);
|
|
|
+ Integer productType = (Integer) packageJson.get("productType");
|
|
|
+ FsStoreOrder order = new FsStoreOrder();
|
|
|
+ Long prescribeId =null;
|
|
|
+ if (productType==1 || packageSubType==2){
|
|
|
+ if (packageOrder.getDoctorId() == null) {
|
|
|
+ Long doctorID = iFsDoctorService.selectFsDoctorDoctorByPackage();
|
|
|
+ packageOrder.setDoctorId(doctorID);
|
|
|
+ }
|
|
|
+ if (packageSubType == 3 ) {
|
|
|
+ inquiryOrderService.createOrderByPackageOrderStatus4(packageOrder);
|
|
|
+ }
|
|
|
+ prescribeId = fsPrescribeService.insertFsPrescribeByPackageOrder(packageOrder);
|
|
|
+ order.setPrescribeId(prescribeId);
|
|
|
}
|
|
|
- Long prescribeId = fsPrescribeService.insertFsPrescribeByPackageOrder(packageOrder);
|
|
|
|
|
|
- FsStoreOrder order = new FsStoreOrder();
|
|
|
+
|
|
|
List<FsStoreOrderItem> items = new ArrayList<>();
|
|
|
log.info("套餐包生成药品订单:{}", packageOrder.getOrderSn());
|
|
|
order.setOrderCode(packageOrder.getOrderSn());
|
|
|
order.setUserId(packageOrder.getUserId());
|
|
|
order.setStoreId(fsPackage.getStoreId());
|
|
|
- order.setPrescribeId(prescribeId);
|
|
|
+
|
|
|
order.setStatus(2);
|
|
|
order.setPayDelivery(packageOrder.getPayDelivery());
|
|
|
order.setPayRemain(packageOrder.getPayRemain());
|
|
@@ -864,7 +874,6 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
|
|
|
order.setFollowEndTime(calendar2.getTime());
|
|
|
order.setFollowStatus(0);
|
|
|
}
|
|
|
-
|
|
|
if (fsStoreOrderMapper.insertFsStoreOrder(order) > 0) {
|
|
|
if (packageOrder.getCycle() >= followRate) {
|
|
|
FsFollow fsFollow = new FsFollow();
|
|
@@ -908,7 +917,6 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
|
|
|
FsStoreOrderLogEnum.CREATE_ORDER.getDesc());
|
|
|
fsStoreOrderLogsService.create(order.getOrderId(), FsStoreOrderLogEnum.PAY_ORDER_SUCCESS.getValue(),
|
|
|
FsStoreOrderLogEnum.PAY_ORDER_SUCCESS.getDesc());
|
|
|
-
|
|
|
fsPackageOrder.setOrderId(packageOrder.getOrderId());
|
|
|
fsPackageOrder.setStoreOrderId(order.getOrderId());
|
|
|
fsPackageOrder.setDoctorId(packageOrder.getDoctorId());
|
|
@@ -939,14 +947,12 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
|
|
|
fsUserService.updateFsUser(u);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
try {
|
|
|
storeSubOrderService.insertFsStoreSubOrderByStoreOrder(order.getOrderId());
|
|
|
} catch (Exception e) {
|
|
|
log.info("拆分订单错误:{}", order.getOrderId());
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
return R.ok();
|
|
|
}
|
|
|
|
|
@@ -1212,7 +1218,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
|
|
|
|
|
|
FsUser user = userService.selectFsUserByUserId(order.getUserId());
|
|
|
Map<String, BigDecimal> data = new HashMap<>();
|
|
|
- if (user != null && StringUtils.isNotEmpty(user.getMaOpenId())) {
|
|
|
+ if (user != null ) {
|
|
|
if (param.getUserCouponId() != null && param.getUserCouponId() > 0l) {
|
|
|
FsUserCoupon userCoupon = userCouponService.selectFsUserCouponById(param.getUserCouponId());
|
|
|
if (userCoupon == null) {
|
|
@@ -1559,7 +1565,6 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
|
|
|
}
|
|
|
|
|
|
}
|
|
|
-
|
|
|
@Autowired
|
|
|
FsStoreOrderScrmMapper storeOrderScrmMapper;
|
|
|
|
|
@@ -1603,10 +1608,254 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+
|
|
|
@Override
|
|
|
public FsStoreOrderScrm selectFsStoreOrderScrmByOrderCode(String soId) {
|
|
|
return fsStoreOrderMapper.selectFsStoreOrderScrmByOrderCode(soId);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public FsStoreOrder confirmOrder(FsPackageOrder packageOrder, Long doctorId) {
|
|
|
+
|
|
|
+ FsPackage fsPackage = fsPackageMapper.selectFsPackageByPackageId(packageOrder.getPackageId());
|
|
|
+ JSONArray objects = JSONUtil.parseArray(fsPackage.getProductJson());
|
|
|
+ List<FsPackagePruductDTO> products = JSONUtil.toList(objects, FsPackagePruductDTO.class);
|
|
|
+ Map<String, Object> packageJson = (Map) JSON.parse(packageOrder.getPackageJson());
|
|
|
+ Integer packageSubType = (Integer) packageJson.get("packageSubType");
|
|
|
+ Integer productType = (Integer) packageJson.get("productType");
|
|
|
+ FsStoreOrder order = new FsStoreOrder();
|
|
|
+ Long prescribeId =null;
|
|
|
+ if (productType==1 || packageSubType==2){
|
|
|
+ if (packageOrder.getDoctorId() == null) {
|
|
|
+ Long doctorID = iFsDoctorService.selectFsDoctorDoctorByPackage();
|
|
|
+ packageOrder.setDoctorId(doctorID);
|
|
|
+ }
|
|
|
+ if (packageSubType == 3 ) {
|
|
|
+ inquiryOrderService.createOrderByPackageOrderStatus4(packageOrder);
|
|
|
+ }
|
|
|
+ prescribeId = fsPrescribeService.insertFsPrescribeByPackageOrder(packageOrder);
|
|
|
+ order.setPrescribeId(prescribeId);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ List<FsStoreOrderItem> items = new ArrayList<>();
|
|
|
+ log.info("套餐包生成药品订单:{}", packageOrder.getOrderSn());
|
|
|
+ order.setOrderCode(packageOrder.getOrderSn());
|
|
|
+ order.setUserId(packageOrder.getUserId());
|
|
|
+ order.setStoreId(fsPackage.getStoreId());
|
|
|
+
|
|
|
+ order.setStatus(1);
|
|
|
+ order.setPayDelivery(packageOrder.getPayDelivery());
|
|
|
+ order.setPayRemain(packageOrder.getPayRemain());
|
|
|
+ order.setPayType(packageOrder.getPayType());
|
|
|
+ order.setPackageSecondName(packageOrder.getPackageSecondName());
|
|
|
+ order.setDoctorId(packageOrder.getDoctorId());
|
|
|
+
|
|
|
+ order.setPackageId(packageOrder.getPackageId());
|
|
|
+ order.setPackageName(packageOrder.getPackageName());
|
|
|
+ order.setPrescribePrice(packageOrder.getTotalPrice());
|
|
|
+ order.setDiscountMoney(packageOrder.getDiscountMoney());
|
|
|
+ order.setDeptId(packageOrder.getDeptId());
|
|
|
+ order.setCompanyId(packageOrder.getCompanyId());
|
|
|
+ order.setCompanyUserId(packageOrder.getCompanyUserId());
|
|
|
+ order.setPackageOrderId(packageOrder.getOrderId());
|
|
|
+ order.setCreateTime(new Date());
|
|
|
+ if (packageOrder.getSource() != null) {
|
|
|
+ order.setSource(packageOrder.getSource());
|
|
|
+ }
|
|
|
+ String addressJson = packageOrder.getAddressJson();
|
|
|
+ if (addressJson != null && addressJson != "") {
|
|
|
+ Map<String, String> parse = (Map) JSON.parse(addressJson);
|
|
|
+ order.setUserName(parse.get("userName"));
|
|
|
+ order.setUserPhone(parse.get("userPhone"));
|
|
|
+ order.setUserAddress(parse.get("userAddress"));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ Long totalNum = 0L;
|
|
|
+ BigDecimal totalPrice = new BigDecimal(0);
|
|
|
+ boolean noTui = false;
|
|
|
+ for (FsPackagePruductDTO product : products) {
|
|
|
+ if (product.getBarCode().equals("106013")) {
|
|
|
+ noTui = true;
|
|
|
+ }
|
|
|
+ totalPrice = totalPrice.add(product.getPrice().multiply(BigDecimal.valueOf(product.getCount())));
|
|
|
+ totalNum = totalNum + product.getCount();
|
|
|
+ FsStoreOrderItem item = new FsStoreOrderItem();
|
|
|
+ item.setProductId(product.getProductId());
|
|
|
+ item.setStoreId(fsPackage.getStoreId());
|
|
|
+ item.setProductAttrValueId(product.getId());
|
|
|
+ item.setNum(Long.parseLong(product.getCount().toString()));
|
|
|
+ item.setIsDrug(product.getIsDrug());
|
|
|
+ FsStoreOrderItemDTO dto = new FsStoreOrderItemDTO();
|
|
|
+ dto.setImage(product.getImage());
|
|
|
+ dto.setNum(Long.parseLong(product.getCount().toString()));
|
|
|
+ dto.setProductName(product.getProductName());
|
|
|
+ dto.setProductId(product.getProductId());
|
|
|
+ dto.setSku(product.getSku());
|
|
|
+ dto.setBarCode(product.getBarCode());
|
|
|
+ dto.setPrice(product.getPrice());
|
|
|
+ dto.setNum(Long.parseLong(product.getCount().toString()));
|
|
|
+ dto.setImage(product.getImage());
|
|
|
+ item.setIsPrescribe(0);
|
|
|
+ item.setJsonInfo(JSON.toJSONString(dto));
|
|
|
+ item.setIsGift(0);
|
|
|
+ items.add(item);
|
|
|
+ }
|
|
|
+ String json = configService.selectConfigByKey("his.package");
|
|
|
+ PackageConfigDTO configDTO = JSONUtil.toBean(json, PackageConfigDTO.class);
|
|
|
+ FsPackageOrder fsPackageOrder = new FsPackageOrder();
|
|
|
+ //赠品处理
|
|
|
+ if (configDTO.getGiftStoreId() != null && configDTO.getGiftStoreId() == packageOrder.getStoreId() && packageOrder.getCompanyId() != null && packageOrder.getCompanyId() > 0 && packageOrder.getPayType().equals(1) && packageOrder.getPayMoney().compareTo(configDTO.getGiftPrice()) >= 0) {
|
|
|
+ if (configDTO.getGift() != null && !configDTO.getGift().isEmpty()) {
|
|
|
+ for (StoreOrderProductDTO product : configDTO.getGift()) {
|
|
|
+ totalNum = totalNum + product.getCount();
|
|
|
+ FsStoreOrderItem item = new FsStoreOrderItem();
|
|
|
+ item.setProductId(product.getProductId());
|
|
|
+ item.setStoreId(fsPackage.getStoreId());
|
|
|
+ item.setProductAttrValueId(product.getId());
|
|
|
+ item.setNum(Long.parseLong(product.getCount().toString()));
|
|
|
+ FsStoreOrderItemDTO dto = new FsStoreOrderItemDTO();
|
|
|
+ dto.setImage(product.getImage());
|
|
|
+ dto.setNum(Long.parseLong(product.getCount().toString()));
|
|
|
+ dto.setProductName(product.getProductName());
|
|
|
+ dto.setProductId(product.getProductId());
|
|
|
+ dto.setSku(product.getSku());
|
|
|
+ dto.setBarCode(product.getBarCode());
|
|
|
+ dto.setPrice(product.getPrice());
|
|
|
+ if (product.getCount() != null) {
|
|
|
+ dto.setNum(Long.parseLong(product.getCount().toString()));
|
|
|
+ }
|
|
|
+ dto.setImage(product.getImage());
|
|
|
+ item.setIsPrescribe(0);
|
|
|
+ item.setJsonInfo(JSON.toJSONString(dto));
|
|
|
+ item.setIsGift(1);
|
|
|
+ items.add(item);
|
|
|
+ fsPackageOrder.setProductCostPrice(packageOrder.getProductCostPrice().add(product.getCostPrice()));
|
|
|
+ fsPackageOrder.setTotalCostPrice(packageOrder.getTotalCostPrice().add(product.getCostPrice()));
|
|
|
+ fsPackageOrder.setCostDiscountMoney(packageOrder.getCostDiscountMoney().subtract(product.getCostPrice()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //物流代收赠品
|
|
|
+ if (configDTO.getGiftStoreId() != null && configDTO.getGiftStoreId() == packageOrder.getStoreId() && packageOrder.getCompanyId() != null && packageOrder.getCompanyId() > 0 && packageOrder.getPayType().equals(2) && packageOrder.getPayPrice().compareTo(configDTO.getGiftPrice()) >= 0) {
|
|
|
+ if (configDTO.getDeliveryGift() != null && !configDTO.getDeliveryGift().isEmpty()) {
|
|
|
+ for (StoreOrderProductDTO product : configDTO.getDeliveryGift()) {
|
|
|
+ totalNum = totalNum + product.getCount();
|
|
|
+ FsStoreOrderItem item = new FsStoreOrderItem();
|
|
|
+ item.setProductId(product.getProductId());
|
|
|
+ item.setStoreId(fsPackage.getStoreId());
|
|
|
+ item.setProductAttrValueId(product.getId());
|
|
|
+ item.setNum(Long.parseLong(product.getCount().toString()));
|
|
|
+ FsStoreOrderItemDTO dto = new FsStoreOrderItemDTO();
|
|
|
+ dto.setImage(product.getImage());
|
|
|
+ dto.setNum(Long.parseLong(product.getCount().toString()));
|
|
|
+ dto.setProductName(product.getProductName());
|
|
|
+ dto.setProductId(product.getProductId());
|
|
|
+ dto.setSku(product.getSku());
|
|
|
+ dto.setBarCode(product.getBarCode());
|
|
|
+ dto.setPrice(product.getPrice());
|
|
|
+ if (product.getCount() != null) {
|
|
|
+ dto.setNum(Long.parseLong(product.getCount().toString()));
|
|
|
+ }
|
|
|
+ dto.setImage(product.getImage());
|
|
|
+ item.setIsPrescribe(0);
|
|
|
+ item.setJsonInfo(JSON.toJSONString(dto));
|
|
|
+ item.setIsGift(1);
|
|
|
+ items.add(item);
|
|
|
+ fsPackageOrder.setProductCostPrice(packageOrder.getProductCostPrice().add(product.getCostPrice()));
|
|
|
+ fsPackageOrder.setTotalCostPrice(packageOrder.getTotalCostPrice().add(product.getCostPrice()));
|
|
|
+ fsPackageOrder.setCostDiscountMoney(packageOrder.getCostDiscountMoney().subtract(product.getCostPrice()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ SysConfig sysConfig = sysConfigMapper.selectConfigByConfigKey("his.store");
|
|
|
+ Map<String, Object> config = (Map<String, Object>) JSON.parse(sysConfig.getConfigValue());
|
|
|
+ Integer followRate = (Integer) config.get("followRate");
|
|
|
+ Long followDoctorId = fsPackageOrderMapper.selectFsPackageOrderByUserId(order.getUserId());
|
|
|
+ if (followDoctorId != null && followDoctorId > 0) {
|
|
|
+ order.setFollowDoctorId(followDoctorId);
|
|
|
+ } else {
|
|
|
+ if (packageOrder.getCompanyId() != null) {
|
|
|
+ Company company = companyService.selectCompanyById(packageOrder.getCompanyId());
|
|
|
+ if (company != null) {
|
|
|
+ String followDoctorIdsJson = company.getFollowDoctorIds();
|
|
|
+ if (followDoctorIdsJson != null && followDoctorIdsJson != "") {
|
|
|
+ long[] ids = JSON.parseObject(followDoctorIdsJson, long[].class);
|
|
|
+ if (ids.length > 0) {
|
|
|
+ Random random = new Random();
|
|
|
+ // 从数组中随机选择一个数字
|
|
|
+ int randomIndex = random.nextInt(ids.length);
|
|
|
+ long randomId = ids[randomIndex];
|
|
|
+ order.setFollowDoctorId(randomId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (order.getFollowDoctorId() == null) {
|
|
|
+ order.setFollowDoctorId(iFsDoctorService.selectFollowDoctorDoctorByPackage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ order.setOrderType(fsPackage.getProductType());
|
|
|
+ order.setTotalNum(totalNum);
|
|
|
+ order.setTotalPrice(totalPrice);
|
|
|
+ order.setPayPrice(packageOrder.getPayPrice());
|
|
|
+ order.setPayMoney(packageOrder.getPayMoney());
|
|
|
+ order.setIsPay(0);
|
|
|
+ order.setItemJson(JSONUtil.toJsonStr(items));
|
|
|
+
|
|
|
+ if (packageOrder.getCycle() >= followRate) {
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setTime(new Date());
|
|
|
+ calendar.add(Calendar.DAY_OF_MONTH, followRate);
|
|
|
+ order.setFollowTime(calendar.getTime());
|
|
|
+ order.setCycle(packageOrder.getCycle());
|
|
|
+ Calendar calendar2 = Calendar.getInstance();
|
|
|
+ calendar2.setTime(new Date());
|
|
|
+ calendar2.add(Calendar.DAY_OF_MONTH, 30 + packageOrder.getCycle());
|
|
|
+ order.setFollowEndTime(calendar2.getTime());
|
|
|
+ order.setFollowStatus(0);
|
|
|
+ }
|
|
|
+ if (fsStoreOrderMapper.insertFsStoreOrder(order) > 0) {
|
|
|
+
|
|
|
+ if (order.getOrderId() == null) {
|
|
|
+ throw new CustomException("订单id为空" + order);
|
|
|
+ }
|
|
|
+ fsStoreOrderLogsService.create(order.getOrderId(), FsStoreOrderLogEnum.CREATE_ORDER.getValue(),
|
|
|
+ FsStoreOrderLogEnum.CREATE_ORDER.getDesc());
|
|
|
+ fsStoreOrderLogsService.create(order.getOrderId(), FsStoreOrderLogEnum.UN_PAY_ORDER.getValue(),
|
|
|
+ FsStoreOrderLogEnum.UN_PAY_ORDER.getDesc());
|
|
|
+
|
|
|
+ if (prescribeId != null) {
|
|
|
+ FsPrescribe fsPrescribe = new FsPrescribe();
|
|
|
+ fsPrescribe.setPrescribeId(prescribeId);
|
|
|
+ fsPrescribe.setStoreOrderId(order.getOrderId());
|
|
|
+ fsPrescribeService.updateFsPrescribe(fsPrescribe);
|
|
|
+ }
|
|
|
+
|
|
|
+ for (FsStoreOrderItem item : items) {
|
|
|
+ item.setOrderId(order.getOrderId());
|
|
|
+ fsStoreOrderItemMapper.insertFsStoreOrderItem(item);
|
|
|
+ }
|
|
|
+ if (noTui) {
|
|
|
+ FsStoreOrder fsStoreOrder = new FsStoreOrder();
|
|
|
+ fsStoreOrder.setOrderId(order.getOrderId());
|
|
|
+ fsStoreOrder.setExtendOrderId("XN");
|
|
|
+ fsStoreOrderMapper.updateFsStoreOrder(fsStoreOrder);
|
|
|
+ }
|
|
|
+ FsUser fsUser = fsUserService.selectFsUserByUserId(order.getUserId());
|
|
|
+ if (fsUser.getIsBuy() == null || fsUser.getIsBuy() == 0) {
|
|
|
+ FsUser u = new FsUser();
|
|
|
+ u.setUserId(order.getUserId());
|
|
|
+ u.setIsBuy(1);
|
|
|
+ fsUserService.updateFsUser(u);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return order;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
|
|
|
public int afterSales(FsStoreOrderSalesParam fsStoreOrderSalesParam) {
|
|
@@ -1928,8 +2177,11 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
|
|
|
erpOrder.setReceiver_address(erpOrder.getReceiver_address().replace("\n", ""));
|
|
|
|
|
|
// 处方图片生成
|
|
|
- String s = fsPrescribeService.PrescribeImg(order.getPrescribeId());
|
|
|
- erpOrder.setSeller_memo(erpOrder.getSeller_memo() + "||" + s + "||");
|
|
|
+ String PrescribeImg=null;
|
|
|
+ if (order.getPrescribeId()!=null){
|
|
|
+ PrescribeImg = fsPrescribeService.PrescribeImg(order.getPrescribeId());
|
|
|
+ }
|
|
|
+ erpOrder.setSeller_memo(erpOrder.getSeller_memo() + "||" + PrescribeImg + "||");
|
|
|
ErpOrderResponse response = erpOrderService.addOrder(erpOrder);
|
|
|
log.info("ErpCreate:" + order.getOrderCode() + ":" + JSONUtil.toJsonStr(response));
|
|
|
if (Boolean.TRUE.equals(response.getSuccess())) {
|
|
@@ -1946,7 +2198,8 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
|
|
|
//写入日志
|
|
|
|
|
|
}
|
|
|
-
|
|
|
+ @Autowired
|
|
|
+ IFsStoreOrderScrmService orderService;
|
|
|
@Override
|
|
|
public ExpressResultDTO updateDeliveryItem(ExpressNotifyDTO notifyDTO) {
|
|
|
String data = URLDecoder.decode(notifyDTO.getRequestData(), Charset.forName("UTF-8"));
|
|
@@ -2030,6 +2283,27 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
|
|
|
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ List<FsStoreOrderScrm> orders2 = orderService.selectFsStoreOrderListByDeliveryId(dto.getLogisticCode());
|
|
|
+ if (orders != null) {
|
|
|
+ for (FsStoreOrderScrm order : orders2) {
|
|
|
+ logger.info("订单信息:" + JSONUtil.toJsonStr(order));
|
|
|
+ logger.info("运单号:" + dto.getLogisticCode());
|
|
|
+ if (order != null && order.getDeliveryStatus() != 3) {
|
|
|
+ FsStoreOrderScrm map = new FsStoreOrderScrm();
|
|
|
+ map.setDeliveryStatus(Integer.parseInt(dto.getState()));
|
|
|
+ map.setId(order.getId());
|
|
|
+ map.setDeliveryType(dto.getStateEx());
|
|
|
+ orderService.updateFsStoreOrder(map);
|
|
|
+ //如果是正常签收,更新订单状态
|
|
|
+ if (dto.getState().equals("3") && (dto.getStateEx().equals("301") || dto.getStateEx().equals("302") || dto.getStateEx().equals("304") || dto.getStateEx().equals("311"))) {
|
|
|
+ orderService.finishOrder(order.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
return ExpressResultDTO.success(sysConfig.getKdnId().trim());
|
|
|
}
|
|
@@ -2856,6 +3130,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
|
|
|
o.setReqSeqId("store-" + storePayment.getPayCode());
|
|
|
o.setTransAmt(storePayment.getPayMoney().toString());
|
|
|
o.setGoodsDesc("药品订单支付");
|
|
|
+ o.setAppId(param.getAppId());
|
|
|
HuifuCreateOrderResult result = huiFuService.createOrder(o);
|
|
|
FsStorePayment mt = new FsStorePayment();
|
|
|
mt.setPaymentId(storePayment.getPaymentId());
|
|
@@ -2975,6 +3250,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
|
|
|
o.setReqSeqId("store-" + storePayment.getPayCode());
|
|
|
o.setTransAmt(storePayment.getPayMoney().toString());
|
|
|
o.setGoodsDesc("药品订单支付");
|
|
|
+ o.setAppId(param.getAppId());
|
|
|
HuifuCreateOrderResult result = huiFuService.createOrder(o);
|
|
|
FsStorePayment mt = new FsStorePayment();
|
|
|
mt.setPaymentId(storePayment.getPaymentId());
|
|
@@ -3811,132 +4087,4 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
|
|
|
return fsStoreOrderMapper.selectFsStoreOrderProductStatistics(fsStoreOrder);
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public int afterSalesByProduct(FsStoreOrderSalesParam param) {
|
|
|
- FsStoreOrder order = fsStoreOrderMapper.selectFsStoreOrderByOrderId(param.getOrderId());
|
|
|
- if (order.getStatus() < 0) {
|
|
|
- throw new CustomException("订单不可提交售后");
|
|
|
- }
|
|
|
- //判断总退款金额是否小于等于实付金额
|
|
|
- BigDecimal refundAmount = param.getRefundAmount();
|
|
|
- if (refundAmount.compareTo(order.getPayMoney())>0){
|
|
|
- throw new CustomException("退款金额不能大于实付金额");
|
|
|
- }
|
|
|
- List<FsStoreOrderRefundByProductParam> refundList = param.getRefundList();
|
|
|
- List<Long> itemIds = refundList.stream().filter(item->item.getNum()>0).map(FsStoreOrderRefundByProductParam::getItemId).collect(Collectors.toList());
|
|
|
- if (itemIds.isEmpty()){
|
|
|
- throw new CustomException("没有选择需要退款的商品/选择退款商品数量不能为0");
|
|
|
- }
|
|
|
- List<FsStoreOrderItem> fsStoreOrderItems = fsStoreOrderItemMapper.selectFsStoreOrderItemListByItemIds(itemIds);
|
|
|
- if (fsStoreOrderItems.size() != itemIds.size()){
|
|
|
- throw new CustomException("所退商品明细不存在");
|
|
|
- }
|
|
|
- FsStoreAfterSales fsStoreAfterSales = new FsStoreAfterSales();
|
|
|
- fsStoreAfterSales.setOrderId(order.getOrderId());
|
|
|
- fsStoreAfterSales.setStoreId(order.getStoreId());
|
|
|
- fsStoreAfterSales.setRefundAmount(refundAmount);
|
|
|
- fsStoreAfterSales.setCreateTime(DateUtils.getNowDate());
|
|
|
- if (order.getStatus() == 2 || order.getStatus() == 3) {
|
|
|
- fsStoreAfterSales.setRefundType(0);
|
|
|
- }
|
|
|
- if (order.getStatus() == 4) {
|
|
|
- FsStore fsStore = fsStoreMapper.selectFsStoreByStoreId(order.getStoreId());
|
|
|
- fsStoreAfterSales.setRefundType(1);
|
|
|
- fsStoreAfterSales.setPhoneNumber(fsStore.getRefundPhone());
|
|
|
- fsStoreAfterSales.setAddress(fsStore.getRefundAddress());
|
|
|
- fsStoreAfterSales.setConsignee(fsStore.getRefundConsignee());
|
|
|
- }
|
|
|
- fsStoreAfterSales.setStatus(0);
|
|
|
- fsStoreAfterSales.setDeptId(order.getDeptId());
|
|
|
- fsStoreAfterSales.setSalesStatus(0);
|
|
|
- fsStoreAfterSales.setOrderStatus(order.getStatus());
|
|
|
- fsStoreAfterSales.setUserId(order.getUserId());
|
|
|
- fsStoreAfterSales.setCompanyId(order.getCompanyId());
|
|
|
- fsStoreAfterSales.setCompanyUserId(order.getCompanyUserId());
|
|
|
- fsStoreAfterSales.setIsDel(0);
|
|
|
- fsStoreAfterSalesService.insertFsStoreAfterSales(fsStoreAfterSales);
|
|
|
-
|
|
|
- for (FsStoreOrderItem fsStoreOrderItem : fsStoreOrderItems) {
|
|
|
- for (FsStoreOrderRefundByProductParam fsStoreOrderRefundByProductParam : refundList) {
|
|
|
- if (Objects.equals(fsStoreOrderRefundByProductParam.getItemId(), fsStoreOrderItem.getItemId())) {
|
|
|
- FsStoreAfterSalesItem item = new FsStoreAfterSalesItem();
|
|
|
- item.setAfterSalesId(fsStoreAfterSales.getId());
|
|
|
- item.setProductId(fsStoreOrderItem.getProductId());
|
|
|
- String jsonInfo = fsStoreOrderItem.getJsonInfo();
|
|
|
- FsProdItemDTO fsProdItemDTO = JSON.parseObject(jsonInfo, FsProdItemDTO.class);
|
|
|
- fsProdItemDTO.setPrice(fsStoreOrderRefundByProductParam.getMoney());
|
|
|
- fsProdItemDTO.setNum(fsStoreOrderRefundByProductParam.getNum());
|
|
|
- item.setJsonInfo(JSONUtil.toJsonStr(fsProdItemDTO));
|
|
|
- fsStoreAfterSalesItemMapper.insertFsStoreAfterSalesItem(item);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- //增加操作日志
|
|
|
- FsStoreAfterSalesLogs logs = new FsStoreAfterSalesLogs();
|
|
|
- logs.setChangeTime(new DateTime());
|
|
|
- logs.setChangeType(0);
|
|
|
- logs.setStoreAfterSalesId(fsStoreAfterSales.getId());
|
|
|
- logs.setOperator(param.getOperator());
|
|
|
- logs.setCompanyId(param.getCompanyId());
|
|
|
- logs.setChangeMessage("平台提交售后");
|
|
|
- fsStoreAfterSalesLogsMapper.insertFsStoreAfterSalesLogs(logs);
|
|
|
- //添加订单日志
|
|
|
- fsStoreOrderLogsService.create(order.getOrderId(), FsStoreOrderLogEnum.REFUND_ORDER_PLATFORM.getValue(),
|
|
|
- param.getOperator() + " " +FsStoreOrderLogEnum.REFUND_ORDER_PLATFORM.getDesc());
|
|
|
- //判断是否开启erp
|
|
|
- FsSysConfig sysConfig = configUtil.getSysConfig();
|
|
|
- Integer erpOpen = sysConfig.getErpOpen();
|
|
|
- if (erpOpen != null && erpOpen == 1) {
|
|
|
- //判断erp类型
|
|
|
- Integer erpType = sysConfig.getErpType();
|
|
|
- if (erpType != null) {
|
|
|
-
|
|
|
- IErpOrderService erpOrderService = null;
|
|
|
- if (erpType == 1) {
|
|
|
- //管易
|
|
|
- erpOrderService = gyOrderService;
|
|
|
- } else if (erpType == 2) {
|
|
|
- //旺店通
|
|
|
- erpOrderService = wdtOrderService;
|
|
|
- } else if (erpType == 3) {
|
|
|
- //瀚智
|
|
|
- erpOrderService = hzOMSOrderService;
|
|
|
- } else if (erpType == 4) {
|
|
|
- //瀚智
|
|
|
- erpOrderService = dfOrderService;
|
|
|
- } else if (erpType == 5) {
|
|
|
- erpOrderService = jSTOrderService;
|
|
|
- }else if (erpType == 6) {
|
|
|
- erpOrderService = k9OrderService;
|
|
|
- }
|
|
|
- if (erpOrderService != null && StringUtils.isNotEmpty(order.getExtendOrderId())) {
|
|
|
- if (!order.getExtendOrderId().equals("HIS")) {
|
|
|
- if (erpType != 3) {
|
|
|
- ErpRefundUpdateRequest request = new ErpRefundUpdateRequest();
|
|
|
- request.setTid(order.getOrderCode());
|
|
|
- request.setOid(order.getOrderCode());
|
|
|
- request.setRefund_state(1);
|
|
|
- erpOrderService.refundUpdate(request);
|
|
|
- } else {
|
|
|
- ErpRefundOrder erpRefundOrder = new ErpRefundOrder();
|
|
|
- erpRefundOrder.setOrderCode(order.getOrderCode());
|
|
|
- erpRefundOrder.setAfterSalesId(fsStoreAfterSales.getId());
|
|
|
- erpOrderService.refundOrder(erpRefundOrder);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- order.setStatus(-1);
|
|
|
- order.setRefundStatus(1 + "");
|
|
|
- fsStoreOrderMapper.updateFsStoreOrder(order);
|
|
|
- if (order.getPackageOrderId() != null) {
|
|
|
- FsPackageOrder fsPackageOrder = fsPackageOrderMapper.selectFsPackageOrderByOrderId(order.getPackageOrderId());
|
|
|
- fsPackageOrder.setRefundStatus(1);
|
|
|
- fsPackageOrderMapper.updateFsPackageOrder(fsPackageOrder);
|
|
|
- }
|
|
|
- return 1;
|
|
|
- }
|
|
|
-
|
|
|
}
|