1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390 |
- package com.iamberry.rst.service.cm;
- import com.github.pagehelper.PageHelper;
- import com.iamberry.redis.RedisUtils;
- import com.iamberry.rst.core.address.Province;
- import com.iamberry.rst.core.cm.FittingsInfo;
- import com.iamberry.rst.core.cm.SalesOrder;
- import com.iamberry.rst.core.cm.SalesOrderItem;
- import com.iamberry.rst.core.cm.StoreInfo;
- import com.iamberry.rst.core.fm.InventoryInfo;
- import com.iamberry.rst.core.fm.InventoryLog;
- import com.iamberry.rst.core.order.*;
- import com.iamberry.rst.core.page.PagedResult;
- import com.iamberry.rst.core.sys.Admin;
- import com.iamberry.rst.core.sys.SysConfig;
- import com.iamberry.rst.core.tools.LogisticsInfo;
- import com.iamberry.rst.faces.address.AddressService;
- import com.iamberry.rst.faces.cm.SalesOrderService;
- import com.iamberry.rst.faces.cm.StoreInfoService;
- import com.iamberry.rst.faces.order.EfastOrderService;
- import com.iamberry.rst.faces.product.ProductService;
- import com.iamberry.rst.service.cm.mapper.FittingsInfoMapper;
- import com.iamberry.rst.service.cm.mapper.SalesOrderMapper;
- import com.iamberry.rst.service.fm.mapper.InventoryLogMapper;
- import com.iamberry.rst.service.fm.mapper.InventoryMapper;
- import com.iamberry.rst.service.order.mapper.LogisticsInfoMapper;
- import com.iamberry.rst.service.order.mapper.ProvincesLogisticsMapper;
- import com.iamberry.rst.service.product.mapper.ProductMapper;
- import com.iamberry.rst.service.sys.mapper.SysConfigMapper;
- import com.iamberry.rst.util.PageUtil;
- import com.iamberry.wechat.tools.DateTimeUtil;
- import com.iamberry.wechat.tools.payUtil.DatetimeUtil;
- import net.sf.json.JSONArray;
- import net.sf.json.JSONObject;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.BeanUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.beans.Transient;
- import java.text.SimpleDateFormat;
- import java.util.*;
- /**
- * Created by liuzhiwei on 2017/10/31.
- */
- @Service
- public class SalesOrderServiceImpl implements SalesOrderService {
- private static Logger logger = LoggerFactory.getLogger(CustomerServiceImpl.class);
- @Autowired
- private SalesOrderMapper salesOrderMapper;
- @Autowired
- private ProductService productService;
- @Autowired
- private StoreInfoService storeInfoService;
- @Autowired
- private EfastOrderService efastOrderService;
- @Autowired
- private SalesOrderService salesOrderService;
- @Autowired
- private FittingsInfoMapper fittingsInfoMapper;
- @Autowired
- private SysConfigMapper sysConfigMapper;
- @Autowired
- private AddressService addressService;
- @Autowired
- private ProvincesLogisticsMapper provincesLogisticsMapper;
- @Autowired
- private ProductMapper productMapper;
- @Autowired
- private InventoryMapper inventoryMapper;
- @Autowired
- private InventoryLogMapper inventoryLogMapper;
- @Override
- public Integer addSalesOrder(SalesOrder salesOrder) {
- return salesOrderMapper.addSalesOrder(salesOrder);
- }
- @Override
- @Transactional
- public Integer addSalesOrderManual(SalesOrder salesOrder) {
- salesOrderMapper.addSalesOrder(salesOrder);
- return null;
- }
- @Override
- public SalesOrder getSalesOrderById(Integer salesId) {
- return salesOrderMapper.getSalesOrderById(salesId);
- }
- @Override
- public Integer updateSalesOrder(SalesOrder salesOrder) {
- //作废订单时需要返还库存
- if(salesOrder.getSalesStatus() != null && salesOrder.getSalesStatus() == 3){
- //如果已出库则返还库存
- if(salesOrderMapper.getSalesOrderById(salesOrder.getSalesId()).getSalesDeliver() == 2){
- returnInventory(salesOrder.getSalesId());
- }
- }
- return salesOrderMapper.updateSalesOrder(salesOrder);
- }
- @Transactional
- @Override
- public Integer updateOrderInfo(SalesOrder salesOrder) {
- int flag = 0;
- //删除订单项
- flag = salesOrderMapper.delOrderItem(salesOrder.getSalesId());
- if (flag <= 0) {
- throw new RuntimeException("删除订单项失败!");
- }
- //修改订单
- salesOrderMapper.updateSalesOrder(salesOrder);
- if (flag <= 0) {
- throw new RuntimeException("修改订单失败!");
- }
- //批量添加订单项数据
- flag = salesOrderMapper.addOrderItemList(salesOrder.getSalesOrderItemList());
- if (flag <= 0) {
- throw new RuntimeException("增加订单项失败!");
- }
- return flag;
- }
- @Override
- public Integer addSalesOrderList(List<SalesOrder> list) {
- return salesOrderMapper.addSalesOrderList(list);
- }
- @Override
- public List<SalesOrder> listSalesOrder(SalesOrder salesOrder) {
- return salesOrderMapper.listSalesOrder(salesOrder);
- }
- @Override
- public Integer listSalesOrderNum(SalesOrder salesOrder) {
- return salesOrderMapper.listSalesOrderNum(salesOrder);
- }
- @Override
- public PagedResult<SalesOrder> listSalesOrderPage(int pageNO, int pageSize, SalesOrder salesOrder, boolean isTotalNum) {
- salesOrder.setStartOrderNO((pageNO-1) * pageSize);
- salesOrder.setEndOrderNO(pageSize);
- //查询订单列表信息
- List<SalesOrder> orderList = salesOrderMapper.listSalesOrderNew(salesOrder);
- for(SalesOrder so : orderList){
- SalesOrderItem salesOrderItem = new SalesOrderItem();
- salesOrderItem.setItemOrderId(so.getSalesId());
- List<SalesOrderItem> salesOrderItemList = salesOrderMapper.listSalesOrderItem(salesOrderItem);
- //去除已退货的订单项
- int num = salesOrderItemList.size();
- for(int i = 0;i< num;){
- SalesOrderItem item = salesOrderItemList.get(i);
- if(item.getItemNum().intValue() == item.getItemReturnNum().intValue()){
- salesOrderItemList.remove(i);
- num = salesOrderItemList.size();
- i = 0;
- }else{
- i++;
- }
- }
- for(SalesOrderItem item : salesOrderItemList){//判断是否包含净水机 1是 2否
- if(item.getColorIsMachine() != null){
- if(item.getColorIsMachine() == 1){
- so.setIsDevelop(1);
- }else{
- so.setIsDevelop(2);
- }
- }else{
- so.setIsDevelop(1);
- }
- }
- so.setSalesOrderItemList(salesOrderItemList);
- }
- PagedResult<SalesOrder> result = PageUtil.getPage(orderList);
- // 查询分页的数据
- int count = salesOrderMapper.listSalesOrderNum(salesOrder);
- result.setTotal(count);
- if(count%pageSize==0){
- count=count/pageSize;
- } else{
- count=count/pageSize+1;
- }
- result.setPages(count);
- result.setPageNo(pageNO);
- result.setPageSize(pageSize);
- return result;
- }
- @Override
- public List<PostInfo> listWaitPrintOrderNum(Integer salesWarehouseId) {
- return salesOrderMapper.listWaitPrintOrderNum(salesWarehouseId);
- }
- @Override
- public PagedResult<SalesOrder> listAwaitSendSalesOrderPage(int pageNO, int pageSize, SalesOrder salesOrder, boolean isTotalNum) {
- PageHelper.startPage(pageNO, pageSize, isTotalNum);
- //查询订单列表信息
- List<SalesOrder> orderList = salesOrderMapper.listAwaitSendSalesOrderPage(salesOrder);
- return PageUtil.getPage(orderList);
- }
- @Override
- @Transactional
- public boolean addOrderAndItem(SalesOrder salesOrder, List<SalesOrderItem> list) throws Exception {
- if (list == null || list.size() == 0) {
- throw new RuntimeException("获取订单信息出错!");
- }
- SalesOrder verifyOrder = new SalesOrder();
- verifyOrder.setSalesOrderId(salesOrder.getSalesOrderId());
- //查询该订单是否存在,如果存在,不需要再次添加到订单中
- int count = salesOrderMapper.getOrderInfoCount(verifyOrder);
- if (count > 0) {
- return true;
- }
- //添加订单数据
- try {
- int orderNum = salesOrderMapper.addSalesOrder(salesOrder);
- if (orderNum <= 0) {
- throw new RuntimeException("获取订单信息出错!");
- }
- } catch (Exception e) {
- return true;
- }
- for (SalesOrderItem item : list) {
- item.setItemOrderId(salesOrder.getSalesId());
- }
- //批量添加订单项数据
- int itemNum = salesOrderMapper.addOrderItemList(list);
- if (itemNum <= 0) {
- throw new RuntimeException("获取订单信息出错!");
- }
- return true;
- }
- @Override
- @Transactional
- public SalesOrder addOrderAndIteminfo(SalesOrder salesOrder, List<SalesOrderItem> list) {
- //添加订单数据
- int orderNum = salesOrderMapper.addSalesOrder(salesOrder);
- if (orderNum <= 0) {
- return salesOrder;
- }
- for (SalesOrderItem item : list) {
- item.setItemOrderId(salesOrder.getSalesId());
- }
- //批量添加订单项数据
- int itemNum = salesOrderMapper.addOrderItemList(list);
- if (itemNum <= 0) {
- return salesOrder;
- }
- return salesOrder;
- }
- public void parseOrder(SalesOrder oginerOrder, List<SalesOrder> listOrder) {
- // 订单项拆分完成,直接返回
- if (oginerOrder.getSalesOrderItemList().size() <= 0) {
- return;
- }
- List<DownsingleRuleInfo> listDownsingleRuleInfo = salesOrderService.listDownsingleRule();
- if(listDownsingleRuleInfo.size() < 1){
- listOrder.add(oginerOrder);
- return;
- }
- // 拆单,比较的是数量和产品
- Map<String, SalesOrderItem> itemMap = new HashMap<>(oginerOrder.getSalesOrderItemList().size());
- for (SalesOrderItem item : oginerOrder.getSalesOrderItemList()) {
- SalesOrderItem itemTwo = new SalesOrderItem();
- BeanUtils.copyProperties(item,itemTwo);
- itemMap.put(item.getItemColorBar(), itemTwo);
- }
- // 遍历拆单规则
- int ruleCount = 0;
- for (DownsingleRuleInfo rule : listDownsingleRuleInfo) {
- // 一个拆单规则
- int count = 0;
- for (DownsingleRuleItemInfo item : rule.getDownsingleRuleItemList()) {
- if (itemMap.get(item.getDownsingleItemBar()) != null) {
- if (item.getDownsingleItemNum() <= itemMap.get(item.getDownsingleItemBar()).getItemNum()) {
- count ++;
- }
- }
- }
- if (count == rule.getDownsingleRuleItemList().size()) {
- // 满足拆单条件
- SalesOrder newOrder = new SalesOrder();
- BeanUtils.copyProperties(oginerOrder,newOrder);
- newOrder.setSalesOrderItemList(new ArrayList<SalesOrderItem>(count));
- for (DownsingleRuleItemInfo item : rule.getDownsingleRuleItemList()) {
- SalesOrderItem temp = new SalesOrderItem();
- BeanUtils.copyProperties(itemMap.get(item.getDownsingleItemBar()),temp);
- temp.setItemNum(item.getDownsingleItemNum());
- newOrder.getSalesOrderItemList().add(temp);
- }
- listOrder.add(newOrder);
- // 继续递归
- for (DownsingleRuleItemInfo item : rule.getDownsingleRuleItemList()) {
- if (item.getDownsingleItemNum().equals(itemMap.get(item.getDownsingleItemBar()).getItemNum())) {
- // 数量和拆单规则相同,则删除原订单的订单项
- /*oginerOrder.getSalesOrderItemList().remove(itemMap.get(item.getDownsingleItemBar()));*/
- for(int i = 0;i<oginerOrder.getSalesOrderItemList().size();i++){
- if(oginerOrder.getSalesOrderItemList().get(i).getItemColorBar() .equals(item.getDownsingleItemBar())){
- oginerOrder.getSalesOrderItemList().remove(i);
- }
- }
- } else {
- // SalesOrderItem orderItem = itemMap.get(item.getDownsingleItemBar());
- SalesOrderItem orderItem = new SalesOrderItem();
- BeanUtils.copyProperties(itemMap.get(item.getDownsingleItemBar()),orderItem);
- int oldCount = orderItem.getItemNum();
- /*orderItem.setItemNum(oldCount - item.getDownsingleItemNum());*/
- for(int i = 0;i<oginerOrder.getSalesOrderItemList().size();i++){
- if(oginerOrder.getSalesOrderItemList().get(i).getItemColorBar() .equals(item.getDownsingleItemBar())){
- oginerOrder.getSalesOrderItemList().get(i).setItemNum(oldCount - item.getDownsingleItemNum());
- }
- }
- }
- }
- salesOrderService.parseOrder(oginerOrder, listOrder);
- break;
- } else {
- // 不满足, 继续下一个规则
- // 如果是最后一个拆单规则,则不拆单
- if ((ruleCount + 1) == listDownsingleRuleInfo.size()) {
- if (oginerOrder.getSalesOrderItemList().size() > 0) {
- listOrder.add(oginerOrder);
- }
- }
- }
- ruleCount++;
- }
- }
- @Override
- @Transactional
- public boolean addRstOrderAndIteminfo(SalesOrder salesOrder){
- //合并订单项-------------statr
- List<SalesOrderItem> listItem = salesOrder.getSalesOrderItemList();
- salesOrder.setSalesOrderItemList(null);
- List<SalesOrderItem> list = new ArrayList<>();
- for (int i = 0;i<listItem.size();i++){
- if(i < listItem.size() - 1 ){
- for(int j = 0;j<listItem.size();j++){
- if (i != j){
- if(listItem.get(i).getItemColorBar().equals(listItem.get(j).getItemColorBar())){
- listItem.get(i).setItemNum(listItem.get(i).getItemNum()+listItem.get(j).getItemNum());
- }
- }
- }
- }
- boolean bl = true;
- for (SalesOrderItem salesOrderItem : list){
- if(salesOrderItem.getItemColorBar().equals(listItem.get(i).getItemColorBar())){
- bl = false;
- }
- }
- if(bl){
- list.add(listItem.get(i));
- }
- }
- //合并订单项----------------------end
- //匹配拆单规则 分割订单-------------state
- List<SalesOrder> listSalesOrder = new ArrayList<>();
- salesOrder.setSalesOrderItemList(list);
- salesOrderService.parseOrder(salesOrder, listSalesOrder);
- //匹配拆单规则 分割订单-------------end
- boolean msg = false;
- /*根据省份来分配物流公司*/
- salesOrderService.setProvincesLogistics(listSalesOrder);
- //判断主从订单--------------------state
- if (listSalesOrder.size() > 0){
- SalesOrder mainOrder = null;
- for (int s = 0;s < listSalesOrder.size();s++){
- if(mainOrder == null){
- for(int i = 0;i<listSalesOrder.get(s).getSalesOrderItemList().size();i++){
- int isMachine = salesOrderService.getIsMachine(listSalesOrder.get(s).getSalesOrderItemList().get(i).getItemColorBar());
- if( isMachine == 1){//1:水机 2:其它产品 0:未查到
- mainOrder = listSalesOrder.get(s);
- listSalesOrder.remove(s);
- break;
- }
- }
- }
- }
- if(mainOrder == null){//如果不存有水机的订单则默认第一个订单为主订单
- mainOrder = listSalesOrder.get(0);
- listSalesOrder.remove(0);
- }
- //判断主从订单--------------------end
- msg = salesOrderService.addRstOrderinfo(mainOrder,listSalesOrder);
- }
- return msg;
- }
- @Override
- @Transactional
- public boolean addRstOrderinfo(SalesOrder mainOrder,List<SalesOrder> listSalesOrder) {
- Integer flag = salesOrderMapper.getOrderBySalesDealCodeNum(mainOrder.getSalesDealCode());
- if(flag > 0){
- throw new RuntimeException("交易号("+ mainOrder.getSalesDealCode() +")重复,请重新生成交易号!");
- }
- if(mainOrder.getSalesCreateTime() == null){
- /*保证时间与以前一样*/
- mainOrder.setSalesCreateTime(new Date());
- }
- int orderNum = salesOrderMapper.addSalesOrder(mainOrder);
- if (orderNum <= 0) {
- throw new RuntimeException("添加订单出错--------!");
- }
- for (SalesOrderItem item : mainOrder.getSalesOrderItemList()) {
- item.setItemOrderId(mainOrder.getSalesId());
- }
- //批量添加订单项数据
- int itemNum = salesOrderMapper.addOrderItemList(mainOrder.getSalesOrderItemList());
- if (itemNum <= 0) {
- throw new RuntimeException("添加订单出错--------!");
- }else{
- if(listSalesOrder.size() > 0){
- for (int i = 0;i<listSalesOrder.size();i++){
- listSalesOrder.get(i).setSalesDealCode(listSalesOrder.get(i).getSalesDealCode()+"-"+(i+1));
- listSalesOrder.get(i).setSalesMainOrderId(mainOrder.getSalesId());
- listSalesOrder.get(i).setSalesId(null);
- orderNum = salesOrderMapper.addSalesOrder(listSalesOrder.get(i));
- if (orderNum <= 0) {
- throw new RuntimeException("添加订单出错--------!");
- }
- for (SalesOrderItem item : listSalesOrder.get(i).getSalesOrderItemList()) {
- item.setItemOrderId(listSalesOrder.get(i).getSalesId());
- }
- //批量添加订单项数据
- itemNum = salesOrderMapper.addOrderItemList(listSalesOrder.get(i).getSalesOrderItemList());
- if (itemNum <= 0) {
- throw new RuntimeException("添加订单出错--------!");
- }
- }
- }
- }
- return true;
- }
- /**
- * 根据省份来分配物流公司
- * @param listSalesOrder
- * @return
- */
- @Override
- public void setProvincesLogistics(List<SalesOrder> listSalesOrder){
- for (SalesOrder salesOrder:listSalesOrder) {
- boolean flag = false;
- for (SalesOrderItem salesOrderItem:salesOrder.getSalesOrderItemList()) {
- ProductColor productColor = productService.getColorByBar(salesOrderItem.getItemColorBar());
- if(productColor.getColorIsMachine() == 1){
- flag = true;
- }
- }
- if(flag){
- String addresses[] = salesOrder.getSalesAddressInfo().split("-");
- if(addresses == null || addresses.length < 3){
- addresses = salesOrder.getSalesAddressInfo().split(" ");
- }
- if(addresses == null || addresses.length < 3){
- addresses = salesOrder.getSalesAddressInfo().split("_");
- }
- if(addresses == null || addresses.length < 3){
- break;
- }
- String provincesStr = addresses[0];
- provincesStr = provincesStr.substring(0,2);
- ProvincesLogistics provincesLogistics = new ProvincesLogistics();
- provincesLogistics.setProvince(provincesStr);
- List<ProvincesLogistics> provincesLogisticsList = provincesLogisticsMapper.getProvincesLogisticsList(provincesLogistics);
- if(provincesLogisticsList == null || provincesLogisticsList.size() < 1){
- /*未查到地址*/
- break;
- }
- //设置快递公司
- provincesLogistics = provincesLogisticsList.get(0);
- if(provincesLogistics.getLogisticsRstCode() != null){
- salesOrder.setSalesPostFirm(provincesLogistics.getLogisticsRstCode());
- }
- }
- }
- }
- @Override
- public List<SalesOrderItem> listSalesOrderItem(SalesOrderItem salesOrderItem) {
- // 通过计算机名称来判断服务器环境
- Map<String,String> map = System.getenv();
- String name = map.get("COMPUTERNAME");
- if ("iZ94klno8qrZ".equalsIgnoreCase(name)) {
- name = "RST_";
- } else {
- name = "adv_";
- }
- // 获取数据
- String key = name + "ORDER_ITEM_" + salesOrderItem.getItemOrderId();
- List<SalesOrderItem> list = RedisUtils.list(key, SalesOrderItem.class);
- if (list == null ) {
- list = salesOrderMapper.listSalesOrderItem(salesOrderItem);
- RedisUtils.put(key, list);
- RedisUtils.expire(key, new Date(259200000 + System.currentTimeMillis()));
- }
- return list;
- }
- @Override
- public Integer updateOrderList(JSONArray orderList, List<SalesOrder> list) {
- List<SalesOrder> salesOrders = new ArrayList<SalesOrder>();
- //订单号相同时,判断状态,发货状态,物流公司,物流单号等是否相同,如果有一个不同,则需添加到salesOrders中进行同步
- for (int i = 0;i < orderList.size();i++) {
- JSONObject orderInfo = orderList.getJSONObject(i);
- for (SalesOrder salesOrder : list) {
- if (orderInfo.get("order_sn").equals(salesOrder.getSalesOrderId())
- && !(orderInfo.getInt("order_status") == salesOrder.getSalesStatus()
- && orderInfo.getInt("shipping_status") == salesOrder.getSalesShippingStatus()
- && orderInfo.getInt("pay_status") == salesOrder.getSalesPayStatus()
- && orderInfo.getInt("process_status") == salesOrder.getSalesProcessStatus()
- && orderInfo.getInt("is_send") == salesOrder.getSalesIsSend()
- && orderInfo.getInt("is_locked") == salesOrder.getSalesIsLocked()
- && orderInfo.getInt("is_separate") == salesOrder.getSalesIsSeparate()
- && orderInfo.getString("shipping_name").equals(salesOrder.getSalesPostFirm())
- && orderInfo.getString("invoice_no").equals(salesOrder.getSalesPostNum())
- )) {
- SalesOrder order = new SalesOrder();
- order.setSalesId(salesOrder.getSalesId());
- order.setSalesStatus(orderInfo.getInt("order_status"));
- order.setSalesShippingStatus(orderInfo.getInt("shipping_status"));
- order.setSalesPayStatus(orderInfo.getInt("pay_status"));
- order.setSalesProcessStatus(orderInfo.getInt("process_status"));
- order.setSalesIsSend(orderInfo.getInt("is_send"));
- order.setSalesIsLocked(orderInfo.getInt("is_locked"));
- order.setSalesIsSeparate(orderInfo.getInt("is_separate"));
- order.setSalesPostFirm(orderInfo.getString("shipping_name"));
- order.setSalesPostNum(orderInfo.getString("invoice_no"));
- salesOrders.add(order);
- }
- }
- }
- if (salesOrders != null && salesOrders.size() > 0) {
- //批量修改订单状态等信息
- return salesOrderMapper.updateOrderList(salesOrders);
- } else {
- return 1;
- }
- }
- @Override
- public Integer updateReturnOrderList(JSONArray orderList, List<SalesOrder> list) {
- List<SalesOrder> salesOrders = new ArrayList<SalesOrder>();
- //订单号相同时,判断状态,发货状态,物流公司,物流单号等是否相同,如果有一个不同,则需添加到salesOrders中进行同步
- for (int i = 0;i < orderList.size();i++) {
- JSONObject orderInfo = orderList.getJSONObject(i);
- for (SalesOrder salesOrder : list) {
- if (orderInfo.get("relating_order_sn").equals(salesOrder.getSalesOrderId())) {
- SalesOrder order = new SalesOrder();
- switch (orderInfo.getInt("process_type")) {
- case 1://退货
- order.setSalesOrderStatus(3);
- break;
- case 4://换货
- order.setSalesOrderStatus(2);
- break;
- default:
- order.setSalesOrderStatus(3);
- break;
- }
- order.setSalesId(salesOrder.getSalesId());
- salesOrders.add(order);
- }
- }
- }
- //批量修改订单状态等信息
- return salesOrderMapper.updateOrderList(list);
- }
- @Override
- public void addSalesOrderList(JSONObject obj) throws Exception{
- if (obj == null) {
- return;
- }
- JSONArray orderList = obj.getJSONArray("list");
- if (orderList == null || orderList.size() == 0) {
- return;
- }
- String endTime = sysConfigMapper.getSysConfig(1);
- for (int i = 0;i < orderList.size();i++) {
- JSONObject order = orderList.getJSONObject(i);
- //获取订单详情
- JSONObject orderInfo = null;
- try{
- orderInfo = efastOrderService.getOrderFormEfast(order.getString("deal_code"));
- }catch (Exception e){
- logger.info("获取订单失败;异常编号:505;失败原因:"+ e.getMessage() +"--获取失败订单号:" + orderList.getJSONObject(i).getString("deal_code"));
- }
- if (orderInfo == null) {
- continue;
- }
- if (!orderInfo.has("orders")) {
- continue;
- }
- //获取订单项集合
- JSONArray itemArray = orderInfo.getJSONArray("orders");
- if (itemArray == null || itemArray.size() == 0) {
- continue;
- }
- SalesOrder salesOrder = new SalesOrder();
- salesOrder.setSalesOrderId(order.getString("order_sn"));//订单编号
- salesOrder.setSalesDealCode(order.getString("deal_code"));//交易号
- salesOrder.setSalesOrderStatus(1);//订单状态
- salesOrder.setSalesShippingStatus(order.getInt("shipping_status"));//发货状态 0:未发货,1:已发货,3:备货中
- salesOrder.setSalesPayStatus(order.getInt("pay_status"));//是否付款 0:未付款,2:已付款
- salesOrder.setSalesProcessStatus(order.getInt("process_status"));//单据状态
- salesOrder.setSalesIsSend(order.getInt("is_send"));//是否通知配货
- salesOrder.setSalesIsLocked(order.getInt("is_locked"));//是否锁定
- salesOrder.setSalesIsSeparate(order.getInt("is_separate"));//是否缺货
- salesOrder.setSalesStatus(order.getInt("order_status"));//订单状态 0:未确认,1:已确认,2:挂起,3:作废
- salesOrder.setSalesPostFirm(order.getString("shipping_name").trim());//快递方式代码
- salesOrder.setSalesPostNum(order.getString("invoice_no").trim());//快递单号
- salesOrder.setSalesOpenId(order.getString("mobile").trim());//唯一标识
- salesOrder.setSalesPayType(efastOrderService.getPayType(order.getString("pay_name").trim()));//支付方式
- salesOrder.setSalesPayTime(new Date(order.getLong("pay_time")*1000));//支付时间
- salesOrder.setSalesUserRemark(order.getString("postscript"));//买家留言
- salesOrder.setSalesAdminRemark(order.getString("to_buyer"));//商家留言
- salesOrder.setSalesAmount((int)(order.getDouble("order_amount")*100));//应付款
- salesOrder.setSalesPayMoney((int)(order.getDouble("money_paid")*100));//已付款
- salesOrder.setSalesAddressName(order.getString("consignee").trim());//收货人
- String mobile = order.getString("mobile").replaceAll("[\\u00A0]+", "").trim();
- salesOrder.setSalesAddressTel(mobile);//收货人电话
- salesOrder.setSalesAddressInfo(order.getString("address").replaceAll(" ","-"));//收货地址
- salesOrder.setSalesShippingFee((int)(order.getDouble("shipping_fee")*100));//邮费
- salesOrder.setSalesCreateTime(DateTimeUtil.parse(order.getString("create_time"),"yyyy-MM-dd HH:mm:ss"));//创建时间
- if (order.getInt("shipping_status") == 1) {
- if(order.has("delivery_time")){
- salesOrder.setSalesSendTime(DateTimeUtil.parse(order.getString("delivery_time"),"yyyy-MM-dd HH:mm:ss"));//发货时间
- }else{
- salesOrder.setSalesSendTime(new Date());//发货时间
- }
- }
- salesOrder.setSalesDiscountMoney(salesOrder.getSalesAmount() - salesOrder.getSalesPayMoney());//优惠金额
- salesOrder.setSalesPledgeMoney(0);//押金金额
- salesOrder.setSalesRemainDeposit(0);//待提取金额
- salesOrder.setSalesSendType(2);//发货方式,默认为物流发货
- salesOrder.setSalesSalesTime(salesOrder.getSalesCreateTime());//订购时间
- salesOrder.setSalesWaitMoney(0);//待付金额
- salesOrder.setSalesLastMoney(salesOrder.getSalesPayMoney());//本次支付金额
- salesOrder.setSalesPayNumber("0000");//支付尾号
- salesOrder.setSalesType(1);//订单类型
- endTime = order.getString("create_time"); //获取
- //查询店铺信息
- StoreInfo storeInfo = new StoreInfo();
- storeInfo.setStoreEfast(order.getString("sd_id"));
- List<StoreInfo> storeList = storeInfoService.listStore(storeInfo);
- int storeId = 0;
- int companyId = 0;
- if (storeList != null && storeList.size() > 0) {
- storeInfo = storeList.get(0);
- storeId = storeInfo.getStoreId();
- companyId = storeInfo.getCompanyId();
- }
- salesOrder.setSalesStoreId(storeId);//店铺id
- salesOrder.setSalesCompanyId(companyId);//销售公司id
- List<SalesOrderItem> itemList = new ArrayList<SalesOrderItem>();
- for (int j = 0;j < itemArray.size();j++) {
- ProductColor color = new ProductColor();
- JSONObject itemJson = itemArray.getJSONObject(j);
- SalesOrderItem item = new SalesOrderItem();
- color.setColorBar(itemJson.getString("goods_sn"));
- List<ProductColor> colorList = productService.listproductAndColor(color);
- if (colorList != null && colorList.size() > 0) {
- color = colorList.get(0);
- item.setItemColorBar(itemJson.getString("goods_sn"));//商品69码
- item.setItemNum(itemJson.getInt("goods_number"));//商品数量
- item.setItemCreateTime(salesOrder.getSalesCreateTime());
- item.setItemColorId(color.getColorId());
- item.setItemProductColor(color.getColorName());
- item.setItemProductDiscount(color.getColorDiscount());
- item.setItemProductId(color.getColorProductId());
- item.setItemProductName(color.getProductName());
- item.setItemProductPic(color.getColorPicture());
- item.setItemProductType(color.getProductType());
- item.setItemProductPrice(color.getColorPrice());
- item.setItemIsSource(1);
- itemList.add(item);
- }
- // else {
- // //获取配件信息
- // FittingsInfo fittingsInfo = new FittingsInfo();
- // fittingsInfo.setFittingsBar(itemJson.getString("goods_sn"));
- // List<FittingsInfo> Fittings = fittingsInfoMapper.listFittings(fittingsInfo);
- // if (Fittings == null || Fittings.size() == 0) {
- // continue;
- // }
- // fittingsInfo = Fittings.get(0);
- // item.setItemColorBar(itemJson.getString("goods_sn"));//商品69码
- // item.setItemNum(itemJson.getInt("goods_number"));//商品数量
- // item.setItemCreateTime(salesOrder.getSalesCreateTime());
- // item.setItemColorId(fittingsInfo.getFittingsId());
- // item.setItemProductColor(fittingsInfo.getFittingsName());
- // item.setItemProductDiscount(fittingsInfo.getFittingsDiscount());
- // item.setItemProductId(fittingsInfo.getProductId());
- // item.setItemProductName(fittingsInfo.getFittingsName());
- // item.setItemProductPic("");
- // item.setItemProductType(0);
- // item.setItemProductPrice(fittingsInfo.getFittingsPrice());
- // item.setItemIsSource(2);
- // itemList.add(item);
- // }
- }
- //添加订单和订单项
- try{
- salesOrderService.addOrderAndItem(salesOrder,itemList);
- }catch (Exception e){
- logger.info("添加订单失败,异常编号:505;失败原因:+"+ e.getMessage() +"Efast编号:"+ salesOrder.getSalesOrderId());
- }
- }
- SysConfig sysConfig = new SysConfig(1,endTime);
- sysConfigMapper.updateSysConfig(sysConfig);
- }
- @Override
- @Transactional
- public boolean syncEfastOrder(JSONObject orderInfo) throws Exception {
- if (orderInfo == null) {
- throw new RuntimeException("获取Efast订单信息出错!");
- }
- if (!orderInfo.has("orders")) {
- throw new RuntimeException("获取Efast订单信息出错!");
- }
- //获取订单项集合
- JSONArray itemArray = orderInfo.getJSONArray("orders");
- if (itemArray == null || itemArray.size() == 0) {
- throw new RuntimeException("获取Efast订单信息出错!");
- }
- SalesOrder salesOrder = new SalesOrder();
- salesOrder.setSalesOrderId(orderInfo.getString("order_sn"));//订单编号
- salesOrder.setSalesDealCode(orderInfo.getString("deal_code"));//交易号
- salesOrder.setSalesOrderStatus(1);//订单状态
- salesOrder.setSalesShippingStatus(orderInfo.getInt("shipping_status"));//发货状态 0:未发货,1:已发货,3:备货中
- salesOrder.setSalesPayStatus(orderInfo.getInt("pay_status"));//是否付款 0:未付款,2:已付款
- salesOrder.setSalesProcessStatus(orderInfo.getInt("process_status"));//单据状态
- salesOrder.setSalesIsSend(orderInfo.getInt("is_send"));//是否通知配货
- salesOrder.setSalesIsLocked(orderInfo.getInt("is_locked"));//是否锁定
- salesOrder.setSalesIsSeparate(orderInfo.getInt("is_separate"));//是否缺货
- salesOrder.setSalesStatus(orderInfo.getInt("order_status"));//订单状态 0:未确认,1:已确认,2:挂起,3:作废
- salesOrder.setSalesPostFirm(new String(orderInfo.getString("shipping_name")).trim());//快递方式代码
- salesOrder.setSalesPostNum(new String(orderInfo.getString("invoice_no")).trim());//快递单号
- salesOrder.setSalesOpenId(orderInfo.getString("mobile").trim());//唯一标识
- salesOrder.setSalesPayType(efastOrderService.getPayType(orderInfo.getString("pay_name").trim()));//支付方式
- salesOrder.setSalesPayTime(new Date(orderInfo.getLong("pay_time")*1000));//支付时间
- salesOrder.setSalesUserRemark(orderInfo.getString("postscript"));//买家留言
- salesOrder.setSalesAdminRemark(orderInfo.getString("to_buyer"));//商家留言
- salesOrder.setSalesAmount((int)(orderInfo.getDouble("order_amount")*100));//应付款
- salesOrder.setSalesPayMoney((int)(orderInfo.getDouble("money_paid")*100));//已付款
- salesOrder.setSalesAddressName(orderInfo.getString("consignee"));//收货人
- String mobile = orderInfo.getString("mobile").replaceAll("[\\u00A0]+", "");
- salesOrder.setSalesAddressTel(mobile.trim());//收货人电话
- salesOrder.setSalesAddressInfo(orderInfo.getString("address").replaceAll(" ","-"));//收货地址
- salesOrder.setSalesShippingFee((int)(orderInfo.getDouble("shipping_fee")*100));//邮费
- salesOrder.setSalesCreateTime(new Date(orderInfo.getLong("pay_time")*1000));//创建时间
- if (orderInfo.getInt("shipping_status") == 1) {
- if(orderInfo.has("delivery_time")){
- salesOrder.setSalesSendTime(DateTimeUtil.parse(orderInfo.getString("delivery_time"),"yyyy-MM-dd HH:mm:ss"));//发货时间
- }else{
- salesOrder.setSalesSendTime(new Date());//发货时间
- }
- }
- salesOrder.setSalesDiscountMoney(salesOrder.getSalesAmount() - salesOrder.getSalesPayMoney());//优惠金额
- salesOrder.setSalesPledgeMoney(0);//押金金额
- salesOrder.setSalesRemainDeposit(0);//待提取金额
- salesOrder.setSalesSendType(2);//发货方式,默认为物流发货
- salesOrder.setSalesSalesTime(salesOrder.getSalesCreateTime());//订购时间
- salesOrder.setSalesWaitMoney(0);//待付金额
- salesOrder.setSalesLastMoney(salesOrder.getSalesPayMoney());//本次支付金额
- salesOrder.setSalesPayNumber("0000");//支付尾号
- salesOrder.setSalesType(1);//订单类型
- //查询店铺信息
- StoreInfo storeInfo = new StoreInfo();
- if (orderInfo.has("sd_id")) {
- storeInfo.setStoreEfast(orderInfo.getString("sd_id"));
- } else {
- storeInfo.setStoreEfast("1");
- }
- List<StoreInfo> storeList = storeInfoService.listStore(storeInfo);
- int storeId = 0;
- int companyId = 0;
- if (storeList != null && storeList.size() > 0) {
- storeInfo = storeList.get(0);
- storeId = storeInfo.getStoreId();
- companyId = storeInfo.getCompanyId();
- }
- salesOrder.setSalesStoreId(storeId);//店铺id
- salesOrder.setSalesCompanyId(companyId);//销售公司id
- List<SalesOrderItem> itemList = new ArrayList<SalesOrderItem>();
- for (int j = 0;j < itemArray.size();j++) {
- ProductColor color = new ProductColor();
- JSONObject itemJson = itemArray.getJSONObject(j);
- SalesOrderItem item = new SalesOrderItem();
- color.setColorBar(itemJson.getString("goods_barcode"));
- List<ProductColor> colorList = productService.listproductAndColor(color);
- if (colorList != null && colorList.size() > 0) {
- color = colorList.get(0);
- item.setItemColorBar(itemJson.getString("goods_barcode"));//商品69码
- item.setItemNum(itemJson.getInt("goods_number"));//商品数量
- item.setItemCreateTime(salesOrder.getSalesCreateTime());
- item.setItemColorId(color.getColorId());
- item.setItemProductColor(color.getColorName());
- item.setItemProductDiscount(color.getColorDiscount());
- item.setItemProductId(color.getColorProductId());
- item.setItemProductName(color.getProductName());
- item.setItemProductPic(color.getColorPicture());
- item.setItemProductType(color.getProductType());
- item.setItemProductPrice(color.getColorPrice());
- item.setItemIsSource(1);
- itemList.add(item);
- }
- // else {
- // //获取配件信息
- // FittingsInfo fittingsInfo = new FittingsInfo();
- // fittingsInfo.setFittingsBar(itemJson.getString("goods_barcode"));
- // List<FittingsInfo> Fittings = fittingsInfoMapper.listFittings(fittingsInfo);
- // if (Fittings == null || Fittings.size() == 0) {
- // continue;
- // }
- // fittingsInfo = Fittings.get(0);
- // item.setItemColorBar(itemJson.getString("goods_barcode"));//商品69码
- // item.setItemNum(itemJson.getInt("goods_number"));//商品数量
- // item.setItemCreateTime(salesOrder.getSalesCreateTime());
- // item.setItemColorId(fittingsInfo.getFittingsId());
- // item.setItemProductColor(fittingsInfo.getFittingsName());
- // item.setItemProductDiscount(fittingsInfo.getFittingsDiscount());
- // item.setItemProductId(fittingsInfo.getProductId());
- // item.setItemProductName(fittingsInfo.getFittingsName());
- // item.setItemProductPic("");
- // item.setItemProductType(0);
- // item.setItemProductPrice(fittingsInfo.getFittingsPrice());
- // item.setItemIsSource(2);
- // itemList.add(item);
- // }
- }
- boolean flag = salesOrderService.addOrderAndItem(salesOrder,itemList);
- if (flag) {
- return true;
- } else {
- throw new RuntimeException("添加订单项出错!");
- }
- }
- @Override
- public Integer getOrderInfoCount(SalesOrder salesOrder) {
- return salesOrderMapper.getOrderInfoCount(salesOrder);
- }
- @Override
- public List<SalesOrder> listOrderExcel(SalesOrder salesOrder) {
- return salesOrderMapper.listOrderExcel(salesOrder);
- }
- @Override
- public Integer listOrderExcelNum(SalesOrder salesOrder) {
- return salesOrderMapper.listOrderExcelNum(salesOrder);
- }
- @Override
- public Integer delOrder(String orderId) {
- return salesOrderMapper.delOrder(orderId);
- }
- @Override
- @Transactional
- public Integer delSalesOrder(Integer id) {
- //查询出库状态判断是否需要返还库存
- if(salesOrderMapper.getSalesOrderById(id).getSalesDeliver() == 2){
- returnInventory(id);
- }
- // 检查客诉是否使用订单,如果有使用订单,无法删除
- salesOrderMapper.delOrderItem(id);
- salesOrderMapper.delSalesOrder(id);
- return 1;
- }
- //执行删除和作废订单时返还库存
- public boolean returnInventory(Integer salesId){
- SalesOrderItem salesOrderItem = new SalesOrderItem();
- salesOrderItem.setItemOrderId(salesId);
- List<SalesOrderItem> listOrderitem = salesOrderService.listSalesOrderItem(salesOrderItem);
- SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- for(SalesOrderItem item : listOrderitem){
- InventoryInfo info = inventoryMapper.getByInventoryByBar(item.getItemColorBar());
- if(info != null){
- info.setInventoryGoodProductNum(info.getInventoryGoodProductNum() + item.getItemNum());
- info.setInventoryRecentRecord(sdf.format(new Date())+"删除/作废订单返还库存:"+item.getItemNum()+"件");
- inventoryMapper.updateById(info);
- //添加日志
- InventoryLog inventoryLog = new InventoryLog();
- inventoryLog.setLogProductName(info.getInventoryProductName());
- inventoryLog.setLogProductBar(info.getInventoryProductBar());
- inventoryLog.setLogRemainingNum(item.getItemNum());
- inventoryLog.setLogType(1);
- inventoryLog.setLogOperationType(1);
- inventoryLog.setLogDesc(sdf.format(new Date())+"删除/作废订单返还库存:"+item.getItemNum()+"件");
- inventoryLog.setLogQualityType(1);
- inventoryLog.setLogWarehouseId(1);
- inventoryLogMapper.insert(inventoryLog);
- }
- }
- return true;
- }
- @Override
- public Integer updateOrderItem(SalesOrderItem salesOrderItem) {
- return salesOrderMapper.updateOrderItem(salesOrderItem);
- }
- @Override
- public SalesOrder getSalesOrderByLogistics(SalesOrder salesOrder) {
- return salesOrderMapper.getSalesOrderByLogistics(salesOrder);
- }
- @Override
- public Integer updateOrderListIsDownload(List<SalesOrder> list) {
- return salesOrderMapper.updateOrderListIsDownload(list);
- }
- @Override
- public Integer updateSalesOrderByDealCode(SalesOrder salesOrder) {
- return salesOrderMapper.updateSalesOrderByDealCode(salesOrder);
- }
- @Override
- public List<LogisticsInfo> getLogisticsInfo(LogisticsInfo logisticsInfo) {
- return salesOrderMapper.getLogisticsInfo(logisticsInfo);
- }
- @Override
- public List<DownsingleRuleInfo> listDownsingleRule() {
- return salesOrderMapper.listDownsingleRule();
- }
- @Override
- public Integer getIsMachine(String colorBar) {
- return salesOrderMapper.getIsMachine(colorBar);
- }
- @Override
- public Integer getOrderBySalesDealCodeNum(String code) {
- return salesOrderMapper.getOrderBySalesDealCodeNum(code);
- }
- @Override
- public Integer listSalesOrderAndItemNum(SalesOrder salesOrder) {
- return salesOrderMapper.listSalesOrderAndItemNum(salesOrder);
- }
- @Override
- public List<SalesOrder> listSalesOrderAndItem(SalesOrder salesOrder) {
- return salesOrderMapper.listSalesOrderAndItem(salesOrder);
- }
- @Override
- public Integer getSalesOrderNum(SalesOrder salesOrder) {
- return salesOrderMapper.getSalesOrderNum(salesOrder);
- }
- @Transactional
- @Override
- public Integer listConfirmSalesOrderByBatch(String salesBatchId) {
- Integer flag = 0;
- SalesOrder salesOrder = new SalesOrder();
- salesOrder.setSalesBatchId(salesBatchId);
- List<SalesOrder> salesOrderList = salesOrderMapper.listSalesOrder(salesOrder);
- if(salesOrderList == null || salesOrderList.size() < 1){
- throw new RuntimeException("查询订单失败!");
- }
- for (SalesOrder so:salesOrderList){
- flag = salesOrderService.confirmSalesOrder(so.getSalesId());
- }
- return flag;
- }
- @Override
- public Integer noticeDistribution(SalesOrder salesOrder) {
- // 检查订单是否已经有了配送方式,如果没有不允许通知配货 -- 移到controller中自己添加
- // SalesOrder temp = salesOrderMapper.getSalesOrderById(salesOrder.getSalesId());
- // if (temp == null || temp.getSalesPostFirm() == null || temp.getSalesPostFirm().isEmpty()) {
- // return 0;
- // }
- return salesOrderMapper.noticeDistribution(salesOrder);
- }
- @Transactional
- @Override
- public Integer confirmSalesOrder(Integer saleId) {
- /*
- * 查询订单
- * 查询订单项
- * 删除订单
- * 修改查询的订单状态
- * 添加订单
- */
- if(saleId == null ){
- throw new RuntimeException("确认订单-订单id异常!");
- }
- SalesOrder salesOrder = salesOrderMapper.getSalesOrderById(saleId);
- if(salesOrder == null){
- throw new RuntimeException("确认订单-订单异常!");
- }
- Integer flag = 0;
- SalesOrderItem salesOrderItem = new SalesOrderItem();
- salesOrderItem.setItemOrderId(salesOrder.getSalesId());
- List<SalesOrderItem> salesOrderItemList = salesOrderMapper.listSalesOrderItem(salesOrderItem);
- if(salesOrderItemList == null || salesOrderItemList.size()<1){
- throw new RuntimeException("确认订单-查询订单项失败!");
- }
- salesOrder.setSalesOrderItemList(salesOrderItemList);
- flag = salesOrderMapper.delOrderById(salesOrder.getSalesId());
- if(flag < 1){
- throw new RuntimeException("确认订单-删除订单失败!");
- }
- flag = salesOrderMapper.delOrderItem(salesOrder.getSalesId());
- if(flag < 1){
- throw new RuntimeException("确认订单-删除订单项失败!");
- }
- //1:确认 状态
- salesOrder.setSalesStatus(1);
- boolean fl = salesOrderService.addRstOrderAndIteminfo(salesOrder);
- if(!fl){
- throw new RuntimeException("确认订单-添加订单失败!");
- }
- return flag;
- }
- @Override
- public Integer distributionExpress(SalesOrder salesOrder) {
- return salesOrderMapper.distributionExpress(salesOrder);
- }
- @Override
- public Integer listSalesPostFirm(SalesOrder salesOrder) {
- return salesOrderMapper.listSalesPostFirm(salesOrder);
- }
- @Override
- public Integer listSalesPostFirmByIds(SalesOrder salesOrder) {
- return salesOrderMapper.listSalesPostFirmByIds(salesOrder);
- }
- @Override
- public SalesOrder getSalesOrderByPostNum(String postNum) {
- return salesOrderMapper.getSalesOrderByPostNum(postNum);
- }
- @Transactional
- @Override
- public Integer updateDeliver(SalesOrder salesOrder) {
- if(salesOrder.getSalesDeliver() == 2){//修改库存
- if(!updateInventory(salesOrder.getSalesId())){
- return 0;
- }
- }
- return salesOrderMapper.updateDeliver(salesOrder);
- }
- public boolean updateInventory(Integer salesId){
- SalesOrderItem salesOrderItem = new SalesOrderItem();
- salesOrderItem.setItemOrderId(salesId);
- List<SalesOrderItem> listOrderitem = salesOrderService.listSalesOrderItem(salesOrderItem);
- SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- for(SalesOrderItem item : listOrderitem){
- InventoryInfo info = inventoryMapper.getByInventoryByBar(item.getItemColorBar());
- if(info != null){
- if(info.getInventoryGoodProductNum() >= item.getItemNum()){
- info.setInventoryGoodProductNum(info.getInventoryGoodProductNum() - item.getItemNum());
- info.setInventoryRecentRecord(sdf.format(new Date())+"出库:"+item.getItemNum()+"件");
- inventoryMapper.updateById(info);
- //添加日志
- InventoryLog inventoryLog = new InventoryLog();
- inventoryLog.setLogProductName(info.getInventoryProductName());
- inventoryLog.setLogProductBar(info.getInventoryProductBar());
- inventoryLog.setLogRemainingNum(item.getItemNum());
- inventoryLog.setLogType(2);
- inventoryLog.setLogOperationType(2);
- inventoryLog.setLogDesc(sdf.format(new Date())+"待发货标记出库:"+item.getItemNum()+"件");
- inventoryLog.setLogQualityType(1);
- inventoryLog.setLogWarehouseId(1);
- inventoryLogMapper.insert(inventoryLog);
- }else{
- return false;
- }
- }
- }
- return true;
- }
- @Override
- public List<SalesOrderItem> getDeliverNum(SalesOrder salesOrder) {
- return salesOrderMapper.getDeliverNum(salesOrder);
- }
- @Override
- public List<Date> getNotSendDate() {
- return salesOrderMapper.getNotSendDate();
- }
- @Override
- public List<SalesOrder> salesOrderListAndItem(SalesOrder salesOrder) {
- return salesOrderMapper.salesOrderListAndItem(salesOrder);
- }
- @Override
- public PagedResult<SalesOrder> salesOrderListAndItemPage(int pageNO, int pageSize, SalesOrder salesOrder, boolean isTotalNum) {
- PageHelper.startPage(pageNO, pageSize, isTotalNum);
- List<SalesOrder> list = salesOrderMapper.salesOrderListAndItem(salesOrder);
- return PageUtil.getPage(list);
- }
- @Override
- public List<SalesOrderItem> selectSalesOrderItemList(Integer salesId) {
- return salesOrderMapper.selectSalesOrderItemList(salesId);
- }
- @Transactional
- @Override
- public Boolean addCorrectInfo(OrderCorrectInfo orderCorrectInfo, String arrayItem, Admin admin) {
- //添加更新信息
- orderCorrectInfo.setAdminId(admin.getAdminId());
- if(salesOrderMapper.addCorrectInfo(orderCorrectInfo) < 1){
- throw new RuntimeException("更正订单-订单异常!");
- }
- //封装订单项数据
- JSONArray jsonArray = JSONArray.fromObject(arrayItem);
- List salesOrderItemList = ((List)JSONArray.toCollection(jsonArray, SalesOrderItem.class));
- for(Object temp : salesOrderItemList){
- SalesOrderItem salesOrderItem = (SalesOrderItem) temp;
- //查询订单项原数量
- SalesOrderItem orderItem = salesOrderMapper.getSalesOrderItem(salesOrderItem.getItemId());
- OrderCorrectItem orderCorrectItem = new OrderCorrectItem();
- orderCorrectItem.setCorrectId(orderCorrectInfo.getCorrectId());
- orderCorrectItem.setOrderItemId(salesOrderItem.getItemId());
- orderCorrectItem.setItemProductColor(salesOrderItem.getItemProductColor());
- orderCorrectItem.setItemProductName(salesOrderItem.getItemProductName());
- orderCorrectItem.setCorrectNum(salesOrderItem.getItemNum());
- orderCorrectItem.setOldNum(orderItem.getItemNum());
- if(orderItem.getItemNum().intValue() != salesOrderItem.getItemNum().intValue()){
- //查询订单判断是否已出库
- if(salesOrderMapper.getSalesOrderById(orderCorrectInfo.getItemOrderId()).getSalesDeliver() == 2){
- //返还库存
- SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- InventoryInfo info = inventoryMapper.getByInventoryByBar(orderItem.getItemColorBar());
- //添加日志
- InventoryLog inventoryLog = new InventoryLog();
- inventoryLog.setLogProductName(info.getInventoryProductName());
- inventoryLog.setLogProductBar(info.getInventoryProductBar());
- inventoryLog.setLogOperationType(1);
- inventoryLog.setLogQualityType(1);
- inventoryLog.setLogWarehouseId(1);
- if(orderItem.getItemNum() > salesOrderItem.getItemNum()){//原数量大于更正后数量
- info.setInventoryGoodProductNum(info.getInventoryGoodProductNum() + (orderItem.getItemNum() - salesOrderItem.getItemNum()));
- info.setInventoryRecentRecord(sdf.format(new Date())+"更正订单返还库存:"+(orderItem.getItemNum() - salesOrderItem.getItemNum())+"件");
- inventoryLog.setLogRemainingNum(orderItem.getItemNum() - salesOrderItem.getItemNum());
- inventoryLog.setLogType(2);
- inventoryLog.setLogDesc(sdf.format(new Date())+"更正订单返还库存:"+(orderItem.getItemNum() - salesOrderItem.getItemNum())+"件");
- }else if(orderItem.getItemNum() < salesOrderItem.getItemNum()){
- if(info.getInventoryGoodProductNum() > (salesOrderItem.getItemNum() - orderItem.getItemNum())){
- info.setInventoryGoodProductNum(info.getInventoryGoodProductNum() - (salesOrderItem.getItemNum() - orderItem.getItemNum()));
- info.setInventoryRecentRecord(sdf.format(new Date())+"更正订单减少库存:"+(orderItem.getItemNum() - salesOrderItem.getItemNum())+"件");
- inventoryLog.setLogRemainingNum(salesOrderItem.getItemNum() - orderItem.getItemNum());
- inventoryLog.setLogType(1);
- inventoryLog.setLogDesc(sdf.format(new Date())+"更正订单减少库存:"+(salesOrderItem.getItemNum() - orderItem.getItemNum())+"件");
- }else{
- return false;
- }
- }
- inventoryMapper.updateById(info);
- inventoryLogMapper.insert(inventoryLog);
- }
- //修改订单项数量
- orderItem.setItemNum(salesOrderItem.getItemNum());
- if(salesOrderMapper.updateOrderItemById(orderItem) < 1){
- throw new RuntimeException("更正订单-修改订单项数量失败!");
- }
- if(salesOrderMapper.addCorrectItem(orderCorrectItem) < 1){
- throw new RuntimeException("更正订单-添加记录失败!");
- }
- }
- }
- return true;
- }
- //更正订单时返还库存
- public boolean returnInventoryByItemId(Integer itemId){
- SalesOrderItem salesOrderItem = new SalesOrderItem();
- salesOrderItem.setItemId(itemId);
- List<SalesOrderItem> listOrderitem = salesOrderService.listSalesOrderItem(salesOrderItem);
- SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- for(SalesOrderItem item : listOrderitem){
- InventoryInfo info = inventoryMapper.getByInventoryByBar(item.getItemColorBar());
- if(info != null){
- info.setInventoryGoodProductNum(info.getInventoryGoodProductNum() + item.getItemNum());
- info.setInventoryRecentRecord(sdf.format(new Date())+"删除/作废订单返还库存:"+item.getItemNum()+"件");
- inventoryMapper.updateById(info);
- //添加日志
- InventoryLog inventoryLog = new InventoryLog();
- inventoryLog.setLogProductName(info.getInventoryProductName());
- inventoryLog.setLogProductBar(info.getInventoryProductBar());
- inventoryLog.setLogRemainingNum(item.getItemNum());
- inventoryLog.setLogType(1);
- inventoryLog.setLogOperationType(1);
- inventoryLog.setLogDesc(sdf.format(new Date())+"删除/作废订单返还库存:"+item.getItemNum()+"件");
- inventoryLog.setLogQualityType(1);
- inventoryLog.setLogWarehouseId(1);
- inventoryLogMapper.insert(inventoryLog);
- }
- }
- return true;
- }
- @Override
- public Integer addCorrectItem(OrderCorrectItem orderCorrectItem) {
- return salesOrderMapper.addCorrectItem(orderCorrectItem);
- }
- @Override
- public OrderCorrectInfo getOrderCorrectInfo(Integer correctId) {
- return salesOrderMapper.getOrderCorrectInfo(correctId);
- }
- @Override
- public List<OrderCorrectItem> listOrderCorrectItem(Integer correctId) {
- return salesOrderMapper.listOrderCorrectItem(correctId);
- }
- @Override
- public SalesOrderItem getSalesOrderItem(Integer itemId) {
- return salesOrderMapper.getSalesOrderItem(itemId);
- }
- @Override
- public Integer updateOrderItemById(SalesOrderItem salesOrderItem) {
- return salesOrderMapper.updateOrderItemById(salesOrderItem);
- }
- @Override
- public List<OrderCorrectInfo> listOrderCorrectInfo(Integer orderId) {
- return salesOrderMapper.listOrderCorrectInfo(orderId);
- }
- @Override
- public OrderWarehouse selectAdminWarehouse(Integer adminId) {
- return salesOrderMapper.selectAdminWarehouse(adminId);
- }
- @Override
- public List<OrderWarehouse> listOrderWarehouse() {
- return salesOrderMapper.listOrderWarehouse();
- }
- @Transactional
- @Override
- public List<SalesOrder> salesOrderAndItemStat(SalesOrder salesOrder) {
- return salesOrderMapper.salesOrderAndItemStat(salesOrder);
- }
- @Transactional
- @Override
- public Integer splitOrder(String mainOrderId, List<SalesOrder> salesOrderList) {
- Integer flag = 0;
- SalesOrder mainOrder = new SalesOrder();
- mainOrder.setSalesDealCode(mainOrderId);
- List<SalesOrder> orderList = salesOrderService.salesOrderListAndItem(mainOrder);
- SalesOrder or = new SalesOrder();
- or.setSalesMainOrderId(orderList.get(0).getSalesId());
- //该订单为主订单
- List<SalesOrder> sonSalesOrderList = salesOrderService.salesOrderListAndItem(or);
- orderList.addAll(sonSalesOrderList);
- for (SalesOrder salesOrder:salesOrderList) {
- for (int j=0;j<orderList.size();j++){
- if(salesOrder.getSalesDealCode().equals(orderList.get(j).getSalesDealCode())){
- orderList.remove(j);
- }
- }
- if(salesOrder.getSalesId() != null && salesOrder.getSalesShippingStatus() > 0){
- continue;
- }
- //create order item
- for (SalesOrderItem itemSaleItem:salesOrder.getSalesOrderItemList()) {
- ProductColor productColor = productMapper.getProductBySku(itemSaleItem.getItemColorBar());
- itemSaleItem.setItemProductId(productColor.getColorProductId());
- itemSaleItem.setItemProductColor(productColor.getColorName());
- itemSaleItem.setColorAbbreviation(productColor.getColorAbbreviation());
- itemSaleItem.setProductAbbreviation(productColor.getColorAbbreviation());
- itemSaleItem.setItemIsSource(1);
- itemSaleItem.setItemProductDiscount(productColor.getColorDiscount());
- itemSaleItem.setItemProductPrice(productColor.getColorPrice());
- itemSaleItem.setItemProductPic(productColor.getColorPicture());
- itemSaleItem.setItemProductName(productColor.getProductName());
- itemSaleItem.setItemProductType(productColor.getProductType());
- itemSaleItem.setItemColorId(productColor.getColorId());
- if(salesOrder.getSalesId() != null){
- itemSaleItem.setItemOrderId(salesOrder.getSalesId());
- }
- }
- Integer salesId = salesOrder.getSalesId();
- if(salesId == null){
- //添加订单和订单项
- salesOrderService.addOrderAndIteminfo(salesOrder,salesOrder.getSalesOrderItemList());
- }else{
- //其余全部做修改,删除订单项,添加新的订单项
- flag = salesOrderMapper.delOrderItem(salesOrder.getSalesId());
- if(flag < 1){
- throw new RuntimeException("删除订单项失败,订单交易号:"+salesOrder.getSalesDealCode());
- }
- flag = salesOrderMapper.addOrderItemList(salesOrder.getSalesOrderItemList());
- if(flag < 1){
- throw new RuntimeException("添加订单项失败,订单交易号:"+salesOrder.getSalesDealCode());
- }
- }
- }
- for (SalesOrder soDelete:orderList) {
- flag = salesOrderService.delSalesOrder(soDelete.getSalesId());
- if(flag < 1){
- throw new RuntimeException("删除订单失败,删除订单交易号:"+soDelete.getSalesDealCode());
- }
- }
- return flag;
- }
- @Override
- public AfterrulesInfo getAfterrulesInfo(Integer storeId) {
- return salesOrderMapper.getAfterrulesInfo(storeId);
- }
- @Override
- public Integer updateOrderItemReturnNum(SalesOrderItem salesOrderItem) {
- return salesOrderMapper.updateOrderItemReturnNum(salesOrderItem);
- }
- @Override
- public List<SmsSignatureInfo> listSmsSignatureInfo(SmsSignatureInfo smsSignatureInfo) {
- return salesOrderMapper.listSmsSignatureInfo(smsSignatureInfo);
- }
- @Override
- public List<SmsTemplateInfo> listSmsTemplateInfo(SmsTemplateInfo smsTemplateInfo) {
- return salesOrderMapper.listSmsTemplateInfo(smsTemplateInfo);
- }
- }
|