|
@@ -16,13 +16,21 @@ import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.collection.CollStreamUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
+import cn.hutool.http.HttpUtil;
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.google.common.collect.Maps;
|
|
|
import jakarta.annotation.Resource;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
+import vip.xiaonuo.biz.core.sign.utils.MD5;
|
|
|
+import vip.xiaonuo.biz.modular.customer.entity.BizCustomer;
|
|
|
+import vip.xiaonuo.biz.modular.customer.service.BizCustomerService;
|
|
|
import vip.xiaonuo.biz.modular.goods.entity.BizGoods;
|
|
|
import vip.xiaonuo.biz.modular.goods.service.BizGoodsService;
|
|
|
import vip.xiaonuo.common.enums.CommonSortOrderEnum;
|
|
@@ -38,7 +46,9 @@ import vip.xiaonuo.biz.modular.bizsaleorder.service.BizSaleOrderService;
|
|
|
|
|
|
import javax.annotation.RegEx;
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
* 销售订单Service接口实现类
|
|
@@ -52,6 +62,12 @@ public class BizSaleOrderServiceImpl extends ServiceImpl<BizSaleOrderMapper, Biz
|
|
|
@Resource
|
|
|
private BizGoodsService goodsService;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private BizCustomerService bizCustomerService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private BizGoodsService bizGoodsService;
|
|
|
+
|
|
|
@Override
|
|
|
public Page<BizSaleOrder> page(BizSaleOrderPageParam bizSaleOrderPageParam) {
|
|
|
QueryWrapper<BizSaleOrder> queryWrapper = new QueryWrapper<BizSaleOrder>().checkSqlInjection();
|
|
@@ -161,4 +177,105 @@ public class BizSaleOrderServiceImpl extends ServiceImpl<BizSaleOrderMapper, Biz
|
|
|
bizSaleOrder.setSaleOrderWeight(bizSaleOrder.getSaleOrderWeight().divide(new BigDecimal(1000)));
|
|
|
return bizSaleOrder;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<BizSaleOrder> queryByErp(BizSaleOrderIdParam bizSaleOrderIdParam) {
|
|
|
+ BizCustomer bizCustomer = bizCustomerService.getById(bizSaleOrderIdParam.getId());
|
|
|
+ if(ObjectUtil.isNull(bizCustomer)){
|
|
|
+ throw new CommonException("未查询到客户信息!");
|
|
|
+ }
|
|
|
+ String appId = "0ol2749zps9xhid1";
|
|
|
+ String appSecret = "e4w9ylwk7grdsdzpbcq8kcedg7ailh1c";
|
|
|
+ String nonce = "21459479202627653";
|
|
|
+ long timestamp = System.currentTimeMillis() / 1000;
|
|
|
+ String sign = getSign(appId, appSecret, nonce, timestamp + "");
|
|
|
+ Map<String,String> map = new HashMap<>();
|
|
|
+ map.put("appId",appId);
|
|
|
+ map.put("appSecret",appSecret);
|
|
|
+ map.put("nonce",nonce);
|
|
|
+ map.put("timestamp",timestamp+"");
|
|
|
+ map.put("signature",sign);
|
|
|
+
|
|
|
+ Map<String,Object> paramMap = Maps.newHashMap();
|
|
|
+ paramMap.put("keywords",bizCustomer.getYongId());
|
|
|
+ paramMap.put("pageNum","1");
|
|
|
+ paramMap.put("pageSize","10");
|
|
|
+ //根据用户中的用友id字段查询erp那边销售订单
|
|
|
+ String result = HttpUtil.createPost("https://1072el542wi61.vicp.fun/api/erp/u8data/getsalelist")
|
|
|
+ .addHeaders(map).body(JSONObject.toJSONString(paramMap)).execute().body();
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(result);
|
|
|
+ String resData = jsonObject.getString("resData");
|
|
|
+ JSONArray jsonArray = JSONObject.parseArray(resData);
|
|
|
+ System.out.println("size:"+jsonArray.size());
|
|
|
+ if(jsonArray.size()>0){
|
|
|
+ for(int i=0; i<jsonArray.size(); i++){
|
|
|
+ JSONObject object = jsonArray.getJSONObject(i);
|
|
|
+ String relationId = object.getString("id");
|
|
|
+ //订单编号
|
|
|
+ String orderCode = object.getString("cSOCode");
|
|
|
+ //货品编码
|
|
|
+ String goodsCode = object.getString("cInvCode");
|
|
|
+ //货品名称
|
|
|
+ String goodsName = object.getString("cInvName");
|
|
|
+ //订单重量
|
|
|
+ BigDecimal weight = new BigDecimal(object.getString("iQuantity"));
|
|
|
+ //单价
|
|
|
+ BigDecimal price = new BigDecimal(object.getString("iTaxUnitPrice"));
|
|
|
+ //业务员
|
|
|
+ String businessName = object.getString("cPsn_Name");
|
|
|
+ //根据关联id查询销售订单是否存在,不存在插入
|
|
|
+ long count = this.count(new QueryWrapper<BizSaleOrder>().lambda().eq(BizSaleOrder::getRelationId, relationId));
|
|
|
+ if(count==0){
|
|
|
+ BizSaleOrder bizSaleOrder = new BizSaleOrder();
|
|
|
+ bizSaleOrder.setSaleOrderNumber(orderCode);
|
|
|
+ bizSaleOrder.setSaleGoodsName(goodsName);
|
|
|
+ bizSaleOrder.setSaleGoodsCode(goodsCode);
|
|
|
+ bizSaleOrder.setSaleOrderWeight(weight.multiply(new BigDecimal(1000)));
|
|
|
+ bizSaleOrder.setSaleStatus("1");
|
|
|
+ bizSaleOrder.setSaleOrderType("1");
|
|
|
+ bizSaleOrder.setCustomerId(bizCustomer.getId());
|
|
|
+ bizSaleOrder.setRelationId(relationId);
|
|
|
+ bizSaleOrder.setSalePrice(price);
|
|
|
+ bizSaleOrder.setBusinessName(businessName);
|
|
|
+ this.save(bizSaleOrder);
|
|
|
+ }
|
|
|
+ //添加货品信息
|
|
|
+ QueryWrapper<BizGoods> queryWrapper = new QueryWrapper<>();
|
|
|
+ if(ObjectUtil.isNotEmpty(goodsCode)){
|
|
|
+ queryWrapper.lambda().eq(BizGoods::getGoodsCode,goodsCode);
|
|
|
+ }
|
|
|
+ if(ObjectUtil.isNotEmpty(goodsName)){
|
|
|
+ queryWrapper.lambda().eq(BizGoods::getGoodsName,goodsName);
|
|
|
+ }
|
|
|
+ long goodCount = bizGoodsService.count(queryWrapper);
|
|
|
+ if(goodCount==0){
|
|
|
+ BizGoods bizGoods = new BizGoods();
|
|
|
+ bizGoods.setGoodsCode(goodsCode);
|
|
|
+ bizGoods.setGoodsName(goodsName);
|
|
|
+ bizGoodsService.save(bizGoods);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<BizSaleOrder> list = this.queryByCustomerId(bizSaleOrderIdParam);
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static String getSign(String appId,String appSecret,String nonce,String timestamp){
|
|
|
+ StringBuffer buffer = new StringBuffer();
|
|
|
+ buffer.append("appId=").append(appId).append("&");
|
|
|
+ buffer.append("appSecret=").append(appSecret).append("&");
|
|
|
+ buffer.append("nonce=").append(nonce).append("&");
|
|
|
+ buffer.append("timestamp=").append(timestamp).append("&");
|
|
|
+ String sign = MD5.md5(buffer.toString());
|
|
|
+ return sign;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static void main(String[] args) {
|
|
|
+ /*String sign = getSign("0ol2749zps9xhid1","e4w9ylwk7grdsdzpbcq8kcedg7ailh1c",
|
|
|
+ "21459479202627653","1746577107");
|
|
|
+ System.out.printf("sign:"+sign);*/
|
|
|
+ BizSaleOrderIdParam bizSaleOrderIdParam = new BizSaleOrderIdParam();
|
|
|
+ bizSaleOrderIdParam.setId("02002");
|
|
|
+ //queryErp(bizSaleOrderIdParam);
|
|
|
+ }
|
|
|
}
|