SalesOrderServiceImpl.java 66 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449
  1. package com.iamberry.rst.service.cm;
  2. import com.github.pagehelper.PageHelper;
  3. import com.iamberry.redis.RedisUtils;
  4. import com.iamberry.rst.core.address.Province;
  5. import com.iamberry.rst.core.cm.FittingsInfo;
  6. import com.iamberry.rst.core.cm.SalesOrder;
  7. import com.iamberry.rst.core.cm.SalesOrderItem;
  8. import com.iamberry.rst.core.cm.StoreInfo;
  9. import com.iamberry.rst.core.fm.ComplaintDetectInfo;
  10. import com.iamberry.rst.core.fm.InventoryInfo;
  11. import com.iamberry.rst.core.fm.InventoryLog;
  12. import com.iamberry.rst.core.order.*;
  13. import com.iamberry.rst.core.page.PagedResult;
  14. import com.iamberry.rst.core.sys.Admin;
  15. import com.iamberry.rst.core.sys.SysConfig;
  16. import com.iamberry.rst.core.tools.LogisticsInfo;
  17. import com.iamberry.rst.faces.address.AddressService;
  18. import com.iamberry.rst.faces.cm.SalesOrderService;
  19. import com.iamberry.rst.faces.cm.StoreInfoService;
  20. import com.iamberry.rst.faces.order.EfastOrderService;
  21. import com.iamberry.rst.faces.product.ProductService;
  22. import com.iamberry.rst.service.cm.mapper.FittingsInfoMapper;
  23. import com.iamberry.rst.service.cm.mapper.SalesOrderMapper;
  24. import com.iamberry.rst.service.fm.mapper.ComplaintDetectInfoMapper;
  25. import com.iamberry.rst.service.fm.mapper.InventoryLogMapper;
  26. import com.iamberry.rst.service.fm.mapper.InventoryMapper;
  27. import com.iamberry.rst.service.order.mapper.LogisticsInfoMapper;
  28. import com.iamberry.rst.service.order.mapper.ProvincesLogisticsMapper;
  29. import com.iamberry.rst.service.product.mapper.ProductMapper;
  30. import com.iamberry.rst.service.sys.mapper.SysConfigMapper;
  31. import com.iamberry.rst.util.PageUtil;
  32. import com.iamberry.wechat.tools.DateTimeUtil;
  33. import com.iamberry.wechat.tools.payUtil.DatetimeUtil;
  34. import net.sf.json.JSONArray;
  35. import net.sf.json.JSONObject;
  36. import org.slf4j.Logger;
  37. import org.slf4j.LoggerFactory;
  38. import org.springframework.beans.BeanUtils;
  39. import org.springframework.beans.factory.annotation.Autowired;
  40. import org.springframework.stereotype.Service;
  41. import org.springframework.transaction.annotation.Transactional;
  42. import java.beans.Transient;
  43. import java.sql.SQLException;
  44. import java.text.SimpleDateFormat;
  45. import java.util.*;
  46. /**
  47. * Created by liuzhiwei on 2017/10/31.
  48. */
  49. @Service
  50. public class SalesOrderServiceImpl implements SalesOrderService {
  51. private static Logger logger = LoggerFactory.getLogger(CustomerServiceImpl.class);
  52. @Autowired
  53. private SalesOrderMapper salesOrderMapper;
  54. @Autowired
  55. private ProductService productService;
  56. @Autowired
  57. private StoreInfoService storeInfoService;
  58. @Autowired
  59. private EfastOrderService efastOrderService;
  60. @Autowired
  61. private SalesOrderService salesOrderService;
  62. @Autowired
  63. private FittingsInfoMapper fittingsInfoMapper;
  64. @Autowired
  65. private SysConfigMapper sysConfigMapper;
  66. @Autowired
  67. private AddressService addressService;
  68. @Autowired
  69. private ProvincesLogisticsMapper provincesLogisticsMapper;
  70. @Autowired
  71. private ProductMapper productMapper;
  72. @Autowired
  73. private InventoryMapper inventoryMapper;
  74. @Autowired
  75. private InventoryLogMapper inventoryLogMapper;
  76. @Autowired
  77. private ComplaintDetectInfoMapper complaintDetectInfoMapper;
  78. @Override
  79. public Integer addSalesOrder(SalesOrder salesOrder) {
  80. return salesOrderMapper.addSalesOrder(salesOrder);
  81. }
  82. @Override
  83. @Transactional
  84. public Integer addSalesOrderManual(SalesOrder salesOrder) {
  85. salesOrderMapper.addSalesOrder(salesOrder);
  86. return null;
  87. }
  88. @Override
  89. public SalesOrder getSalesOrderById(Integer salesId) {
  90. return salesOrderMapper.getSalesOrderById(salesId);
  91. }
  92. @Override
  93. @Transactional(rollbackFor = {SQLException.class, RuntimeException.class})
  94. public Integer updateSalesOrder(SalesOrder salesOrder) {
  95. Integer res = salesOrderMapper.updateSalesOrder(salesOrder);
  96. if (res == null || res <= 0) {
  97. return 0;
  98. }
  99. // 作废订单时需要返还库存
  100. if(salesOrder.getSalesStatus() != null && salesOrder.getSalesStatus() == 3){
  101. // 如果已出库则返还库存
  102. SalesOrder so = salesOrderMapper.getSalesOrderById(salesOrder.getSalesId());
  103. if(so.getSalesDeliver() == 2){
  104. returnInventory(salesOrder.getSalesId(),so.getSalesWarehouseId());
  105. }
  106. }
  107. return 1;
  108. }
  109. @Transactional
  110. @Override
  111. public Integer updateOrderInfo(SalesOrder salesOrder) {
  112. int flag = 0;
  113. //删除订单项
  114. flag = salesOrderMapper.delOrderItem(salesOrder.getSalesId());
  115. if (flag <= 0) {
  116. throw new RuntimeException("删除订单项失败!");
  117. }
  118. //修改订单
  119. salesOrderMapper.updateSalesOrder(salesOrder);
  120. if (flag <= 0) {
  121. throw new RuntimeException("修改订单失败!");
  122. }
  123. //批量添加订单项数据
  124. flag = salesOrderMapper.addOrderItemList(salesOrder.getSalesOrderItemList());
  125. if (flag <= 0) {
  126. throw new RuntimeException("增加订单项失败!");
  127. }
  128. return flag;
  129. }
  130. @Override
  131. public Integer addSalesOrderList(List<SalesOrder> list) {
  132. return salesOrderMapper.addSalesOrderList(list);
  133. }
  134. @Override
  135. public List<SalesOrder> listSalesOrder(SalesOrder salesOrder) {
  136. return salesOrderMapper.listSalesOrder(salesOrder);
  137. }
  138. @Override
  139. public Integer listSalesOrderNum(SalesOrder salesOrder) {
  140. return salesOrderMapper.listSalesOrderNum(salesOrder);
  141. }
  142. @Override
  143. public PagedResult<SalesOrder> listSalesOrderPage(int pageNO, int pageSize, SalesOrder salesOrder, boolean isTotalNum) {
  144. salesOrder.setStartOrderNO((pageNO-1) * pageSize);
  145. salesOrder.setEndOrderNO(pageSize);
  146. //查询订单列表信息
  147. List<SalesOrder> orderList = salesOrderMapper.listSalesOrderNew(salesOrder);
  148. for(SalesOrder so : orderList){
  149. SalesOrderItem salesOrderItem = new SalesOrderItem();
  150. salesOrderItem.setItemOrderId(so.getSalesId());
  151. List<SalesOrderItem> salesOrderItemList = salesOrderMapper.listSalesOrderItem(salesOrderItem);
  152. //去除已退货的订单项
  153. int num = salesOrderItemList.size();
  154. for(int i = 0;i< num;){
  155. SalesOrderItem item = salesOrderItemList.get(i);
  156. if(item.getItemNum().intValue() == item.getItemReturnNum().intValue()){
  157. salesOrderItemList.remove(i);
  158. num = salesOrderItemList.size();
  159. i = 0;
  160. }else{
  161. i++;
  162. }
  163. }
  164. for(SalesOrderItem item : salesOrderItemList){//判断是否包含净水机 1是 2否
  165. if(item.getColorIsMachine() != null){
  166. if(item.getColorIsMachine() == 1){
  167. so.setIsDevelop(1);
  168. }else{
  169. so.setIsDevelop(2);
  170. }
  171. }else{
  172. so.setIsDevelop(1);
  173. }
  174. }
  175. so.setSalesOrderItemList(salesOrderItemList);
  176. }
  177. PagedResult<SalesOrder> result = PageUtil.getPage(orderList);
  178. // 查询分页的数据
  179. int count = salesOrderMapper.listSalesOrderNum(salesOrder);
  180. result.setTotal(count);
  181. if(count%pageSize==0){
  182. count=count/pageSize;
  183. } else{
  184. count=count/pageSize+1;
  185. }
  186. result.setPages(count);
  187. result.setPageNo(pageNO);
  188. result.setPageSize(pageSize);
  189. return result;
  190. }
  191. @Override
  192. public List<PostInfo> listWaitPrintOrderNum(Integer salesWarehouseId) {
  193. return salesOrderMapper.listWaitPrintOrderNum(salesWarehouseId);
  194. }
  195. @Override
  196. public PagedResult<SalesOrder> listAwaitSendSalesOrderPage(int pageNO, int pageSize, SalesOrder salesOrder, boolean isTotalNum) {
  197. PageHelper.startPage(pageNO, pageSize, isTotalNum);
  198. //查询订单列表信息
  199. List<SalesOrder> orderList = salesOrderMapper.listAwaitSendSalesOrderPage(salesOrder);
  200. return PageUtil.getPage(orderList);
  201. }
  202. @Override
  203. @Transactional
  204. public boolean addOrderAndItem(SalesOrder salesOrder, List<SalesOrderItem> list) throws Exception {
  205. if (list == null || list.size() == 0) {
  206. throw new RuntimeException("获取订单信息出错!");
  207. }
  208. SalesOrder verifyOrder = new SalesOrder();
  209. verifyOrder.setSalesOrderId(salesOrder.getSalesOrderId());
  210. //查询该订单是否存在,如果存在,不需要再次添加到订单中
  211. int count = salesOrderMapper.getOrderInfoCount(verifyOrder);
  212. if (count > 0) {
  213. return true;
  214. }
  215. //添加订单数据
  216. try {
  217. int orderNum = salesOrderMapper.addSalesOrder(salesOrder);
  218. if (orderNum <= 0) {
  219. throw new RuntimeException("获取订单信息出错!");
  220. }
  221. } catch (Exception e) {
  222. return true;
  223. }
  224. for (SalesOrderItem item : list) {
  225. item.setItemOrderId(salesOrder.getSalesId());
  226. }
  227. //批量添加订单项数据
  228. int itemNum = salesOrderMapper.addOrderItemList(list);
  229. if (itemNum <= 0) {
  230. throw new RuntimeException("获取订单信息出错!");
  231. }
  232. return true;
  233. }
  234. @Override
  235. @Transactional
  236. public SalesOrder addOrderAndIteminfo(SalesOrder salesOrder, List<SalesOrderItem> list) {
  237. //添加订单数据
  238. int orderNum = salesOrderMapper.addSalesOrder(salesOrder);
  239. if (orderNum <= 0) {
  240. return salesOrder;
  241. }
  242. for (SalesOrderItem item : list) {
  243. item.setItemOrderId(salesOrder.getSalesId());
  244. }
  245. //批量添加订单项数据
  246. int itemNum = salesOrderMapper.addOrderItemList(list);
  247. if (itemNum <= 0) {
  248. return salesOrder;
  249. }
  250. return salesOrder;
  251. }
  252. public void parseOrder(SalesOrder oginerOrder, List<SalesOrder> listOrder) {
  253. // 订单项拆分完成,直接返回
  254. if (oginerOrder.getSalesOrderItemList().size() <= 0) {
  255. return;
  256. }
  257. List<DownsingleRuleInfo> listDownsingleRuleInfo = salesOrderService.listDownsingleRule();
  258. if(listDownsingleRuleInfo.size() < 1){
  259. listOrder.add(oginerOrder);
  260. return;
  261. }
  262. // 拆单,比较的是数量和产品
  263. Map<String, SalesOrderItem> itemMap = new HashMap<>(oginerOrder.getSalesOrderItemList().size());
  264. for (SalesOrderItem item : oginerOrder.getSalesOrderItemList()) {
  265. SalesOrderItem itemTwo = new SalesOrderItem();
  266. BeanUtils.copyProperties(item,itemTwo);
  267. itemMap.put(item.getItemColorBar(), itemTwo);
  268. }
  269. // 遍历拆单规则
  270. int ruleCount = 0;
  271. for (DownsingleRuleInfo rule : listDownsingleRuleInfo) {
  272. // 一个拆单规则
  273. int count = 0;
  274. for (DownsingleRuleItemInfo item : rule.getDownsingleRuleItemList()) {
  275. if (itemMap.get(item.getDownsingleItemBar()) != null) {
  276. if (item.getDownsingleItemNum() <= itemMap.get(item.getDownsingleItemBar()).getItemNum()) {
  277. count ++;
  278. }
  279. }
  280. }
  281. if (count == rule.getDownsingleRuleItemList().size()) {
  282. // 满足拆单条件
  283. SalesOrder newOrder = new SalesOrder();
  284. BeanUtils.copyProperties(oginerOrder,newOrder);
  285. newOrder.setSalesOrderItemList(new ArrayList<SalesOrderItem>(count));
  286. for (DownsingleRuleItemInfo item : rule.getDownsingleRuleItemList()) {
  287. SalesOrderItem temp = new SalesOrderItem();
  288. BeanUtils.copyProperties(itemMap.get(item.getDownsingleItemBar()),temp);
  289. temp.setItemNum(item.getDownsingleItemNum());
  290. newOrder.getSalesOrderItemList().add(temp);
  291. }
  292. listOrder.add(newOrder);
  293. // 继续递归
  294. for (DownsingleRuleItemInfo item : rule.getDownsingleRuleItemList()) {
  295. if (item.getDownsingleItemNum().equals(itemMap.get(item.getDownsingleItemBar()).getItemNum())) {
  296. // 数量和拆单规则相同,则删除原订单的订单项
  297. /*oginerOrder.getSalesOrderItemList().remove(itemMap.get(item.getDownsingleItemBar()));*/
  298. for(int i = 0;i<oginerOrder.getSalesOrderItemList().size();i++){
  299. if(oginerOrder.getSalesOrderItemList().get(i).getItemColorBar() .equals(item.getDownsingleItemBar())){
  300. oginerOrder.getSalesOrderItemList().remove(i);
  301. }
  302. }
  303. } else {
  304. // SalesOrderItem orderItem = itemMap.get(item.getDownsingleItemBar());
  305. SalesOrderItem orderItem = new SalesOrderItem();
  306. BeanUtils.copyProperties(itemMap.get(item.getDownsingleItemBar()),orderItem);
  307. int oldCount = orderItem.getItemNum();
  308. /*orderItem.setItemNum(oldCount - item.getDownsingleItemNum());*/
  309. for(int i = 0;i<oginerOrder.getSalesOrderItemList().size();i++){
  310. if(oginerOrder.getSalesOrderItemList().get(i).getItemColorBar() .equals(item.getDownsingleItemBar())){
  311. oginerOrder.getSalesOrderItemList().get(i).setItemNum(oldCount - item.getDownsingleItemNum());
  312. }
  313. }
  314. }
  315. }
  316. salesOrderService.parseOrder(oginerOrder, listOrder);
  317. break;
  318. } else {
  319. // 不满足, 继续下一个规则
  320. // 如果是最后一个拆单规则,则不拆单
  321. if ((ruleCount + 1) == listDownsingleRuleInfo.size()) {
  322. if (oginerOrder.getSalesOrderItemList().size() > 0) {
  323. listOrder.add(oginerOrder);
  324. }
  325. }
  326. }
  327. ruleCount++;
  328. }
  329. }
  330. @Override
  331. @Transactional
  332. public boolean addRstOrderAndIteminfo(SalesOrder salesOrder){
  333. //合并订单项-------------statr
  334. List<SalesOrderItem> listItem = salesOrder.getSalesOrderItemList();
  335. salesOrder.setSalesOrderItemList(null);
  336. List<SalesOrderItem> list = new ArrayList<>();
  337. for (int i = 0;i<listItem.size();i++){
  338. if(i < listItem.size() - 1 ){
  339. for(int j = 0;j<listItem.size();j++){
  340. if (i != j){
  341. if(listItem.get(i).getItemColorBar().equals(listItem.get(j).getItemColorBar())){
  342. listItem.get(i).setItemNum(listItem.get(i).getItemNum()+listItem.get(j).getItemNum());
  343. }
  344. }
  345. }
  346. }
  347. boolean bl = true;
  348. for (SalesOrderItem salesOrderItem : list){
  349. if(salesOrderItem.getItemColorBar().equals(listItem.get(i).getItemColorBar())){
  350. bl = false;
  351. }
  352. }
  353. if(bl){
  354. list.add(listItem.get(i));
  355. }
  356. }
  357. //合并订单项----------------------end
  358. //匹配拆单规则 分割订单-------------state
  359. List<SalesOrder> listSalesOrder = new ArrayList<>();
  360. salesOrder.setSalesOrderItemList(list);
  361. salesOrderService.parseOrder(salesOrder, listSalesOrder);
  362. //匹配拆单规则 分割订单-------------end
  363. boolean msg = false;
  364. /*根据省份来分配物流公司*/
  365. salesOrderService.setProvincesLogistics(listSalesOrder);
  366. //判断主从订单--------------------state
  367. if (listSalesOrder.size() > 0){
  368. SalesOrder mainOrder = null;
  369. for (int s = 0;s < listSalesOrder.size();s++){
  370. if(mainOrder == null){
  371. for(int i = 0;i<listSalesOrder.get(s).getSalesOrderItemList().size();i++){
  372. int isMachine = salesOrderService.getIsMachine(listSalesOrder.get(s).getSalesOrderItemList().get(i).getItemColorBar());
  373. if( isMachine == 1){//1:水机 2:其它产品 0:未查到
  374. mainOrder = listSalesOrder.get(s);
  375. listSalesOrder.remove(s);
  376. break;
  377. }
  378. }
  379. }
  380. }
  381. if(mainOrder == null){//如果不存有水机的订单则默认第一个订单为主订单
  382. mainOrder = listSalesOrder.get(0);
  383. listSalesOrder.remove(0);
  384. }
  385. //判断主从订单--------------------end
  386. msg = salesOrderService.addRstOrderinfo(mainOrder,listSalesOrder,null);
  387. }
  388. return msg;
  389. }
  390. @Override
  391. @Transactional
  392. public boolean addRstOrderinfo(SalesOrder mainOrder,List<SalesOrder> listSalesOrder,String[] detectIds) {
  393. Integer flag = salesOrderMapper.getOrderBySalesDealCodeNum(mainOrder.getSalesDealCode());
  394. if(flag > 0){
  395. throw new RuntimeException("交易号("+ mainOrder.getSalesDealCode() +")重复,请重新生成交易号!");
  396. }
  397. if(mainOrder.getSalesCreateTime() == null){
  398. /*保证时间与以前一样*/
  399. mainOrder.setSalesCreateTime(new Date());
  400. }
  401. int orderNum = salesOrderMapper.addSalesOrder(mainOrder);
  402. if (orderNum <= 0) {
  403. throw new RuntimeException("添加订单出错--------!");
  404. }
  405. for (SalesOrderItem item : mainOrder.getSalesOrderItemList()) {
  406. item.setItemOrderId(mainOrder.getSalesId());
  407. }
  408. //批量添加订单项数据
  409. int itemNum = salesOrderMapper.addOrderItemList(mainOrder.getSalesOrderItemList());
  410. if (itemNum <= 0) {
  411. throw new RuntimeException("添加订单出错--------!");
  412. }else{
  413. if(listSalesOrder.size() > 0){
  414. for (int i = 0;i<listSalesOrder.size();i++){
  415. listSalesOrder.get(i).setSalesDealCode(listSalesOrder.get(i).getSalesDealCode()+"-"+(i+1));
  416. listSalesOrder.get(i).setSalesMainOrderId(mainOrder.getSalesId());
  417. listSalesOrder.get(i).setSalesId(null);
  418. orderNum = salesOrderMapper.addSalesOrder(listSalesOrder.get(i));
  419. if (orderNum <= 0) {
  420. throw new RuntimeException("添加订单出错--------!");
  421. }
  422. for (SalesOrderItem item : listSalesOrder.get(i).getSalesOrderItemList()) {
  423. item.setItemOrderId(listSalesOrder.get(i).getSalesId());
  424. }
  425. //批量添加订单项数据
  426. itemNum = salesOrderMapper.addOrderItemList(listSalesOrder.get(i).getSalesOrderItemList());
  427. if (itemNum <= 0) {
  428. throw new RuntimeException("添加订单出错--------!");
  429. }
  430. }
  431. }
  432. }
  433. //修为维修记录为已下单
  434. if(detectIds != null){
  435. if(detectIds.length > 0){
  436. for(String detectId : detectIds){
  437. ComplaintDetectInfo detectInfo = new ComplaintDetectInfo();
  438. detectInfo.setDetectId(Integer.valueOf(detectId));
  439. detectInfo.setDetectPlaceorder(2);
  440. detectInfo.setDetectSalesId(mainOrder.getSalesId());
  441. complaintDetectInfoMapper.updateDetectById(detectInfo);
  442. }
  443. }
  444. }
  445. return true;
  446. }
  447. /**
  448. * 根据省份来分配物流公司
  449. * @param listSalesOrder
  450. * @return
  451. */
  452. @Override
  453. public void setProvincesLogistics(List<SalesOrder> listSalesOrder){
  454. for (SalesOrder salesOrder:listSalesOrder) {
  455. boolean flag = false;
  456. for (SalesOrderItem salesOrderItem:salesOrder.getSalesOrderItemList()) {
  457. ProductColor productColor = productService.getColorByBar(salesOrderItem.getItemColorBar());
  458. if(productColor.getColorIsMachine() == 1){
  459. flag = true;
  460. }
  461. }
  462. if(flag){
  463. String addresses[] = salesOrder.getSalesAddressInfo().split("-");
  464. if(addresses == null || addresses.length < 3){
  465. addresses = salesOrder.getSalesAddressInfo().split(" ");
  466. }
  467. if(addresses == null || addresses.length < 3){
  468. addresses = salesOrder.getSalesAddressInfo().split("_");
  469. }
  470. if(addresses == null || addresses.length < 3){
  471. break;
  472. }
  473. String provincesStr = addresses[0];
  474. provincesStr = provincesStr.substring(0,2);
  475. ProvincesLogistics provincesLogistics = new ProvincesLogistics();
  476. provincesLogistics.setProvince(provincesStr);
  477. List<ProvincesLogistics> provincesLogisticsList = provincesLogisticsMapper.getProvincesLogisticsList(provincesLogistics);
  478. if(provincesLogisticsList == null || provincesLogisticsList.size() < 1){
  479. /*未查到地址*/
  480. break;
  481. }
  482. //设置快递公司
  483. provincesLogistics = provincesLogisticsList.get(0);
  484. if(provincesLogistics.getLogisticsRstCode() != null){
  485. salesOrder.setSalesPostFirm(provincesLogistics.getLogisticsRstCode());
  486. }
  487. }
  488. }
  489. }
  490. @Override
  491. public List<SalesOrderItem> listSalesOrderItem(SalesOrderItem salesOrderItem) {
  492. // 通过计算机名称来判断服务器环境
  493. Map<String,String> map = System.getenv();
  494. String name = map.get("COMPUTERNAME");
  495. if ("iZ94klno8qrZ".equalsIgnoreCase(name)) {
  496. name = "RST_";
  497. } else {
  498. name = "adv_";
  499. }
  500. // 获取数据
  501. String key = name + "ORDER_ITEM_" + salesOrderItem.getItemOrderId();
  502. List<SalesOrderItem> list = RedisUtils.list(key, SalesOrderItem.class);
  503. if (list == null ) {
  504. list = salesOrderMapper.listSalesOrderItem(salesOrderItem);
  505. RedisUtils.put(key, list);
  506. RedisUtils.expire(key, new Date(259200000 + System.currentTimeMillis()));
  507. }
  508. return list;
  509. }
  510. @Override
  511. public Integer updateOrderList(JSONArray orderList, List<SalesOrder> list) {
  512. List<SalesOrder> salesOrders = new ArrayList<SalesOrder>();
  513. //订单号相同时,判断状态,发货状态,物流公司,物流单号等是否相同,如果有一个不同,则需添加到salesOrders中进行同步
  514. for (int i = 0;i < orderList.size();i++) {
  515. JSONObject orderInfo = orderList.getJSONObject(i);
  516. for (SalesOrder salesOrder : list) {
  517. if (orderInfo.get("order_sn").equals(salesOrder.getSalesOrderId())
  518. && !(orderInfo.getInt("order_status") == salesOrder.getSalesStatus()
  519. && orderInfo.getInt("shipping_status") == salesOrder.getSalesShippingStatus()
  520. && orderInfo.getInt("pay_status") == salesOrder.getSalesPayStatus()
  521. && orderInfo.getInt("process_status") == salesOrder.getSalesProcessStatus()
  522. && orderInfo.getInt("is_send") == salesOrder.getSalesIsSend()
  523. && orderInfo.getInt("is_locked") == salesOrder.getSalesIsLocked()
  524. && orderInfo.getInt("is_separate") == salesOrder.getSalesIsSeparate()
  525. && orderInfo.getString("shipping_name").equals(salesOrder.getSalesPostFirm())
  526. && orderInfo.getString("invoice_no").equals(salesOrder.getSalesPostNum())
  527. )) {
  528. SalesOrder order = new SalesOrder();
  529. order.setSalesId(salesOrder.getSalesId());
  530. order.setSalesStatus(orderInfo.getInt("order_status"));
  531. order.setSalesShippingStatus(orderInfo.getInt("shipping_status"));
  532. order.setSalesPayStatus(orderInfo.getInt("pay_status"));
  533. order.setSalesProcessStatus(orderInfo.getInt("process_status"));
  534. order.setSalesIsSend(orderInfo.getInt("is_send"));
  535. order.setSalesIsLocked(orderInfo.getInt("is_locked"));
  536. order.setSalesIsSeparate(orderInfo.getInt("is_separate"));
  537. order.setSalesPostFirm(orderInfo.getString("shipping_name"));
  538. order.setSalesPostNum(orderInfo.getString("invoice_no"));
  539. salesOrders.add(order);
  540. }
  541. }
  542. }
  543. if (salesOrders != null && salesOrders.size() > 0) {
  544. //批量修改订单状态等信息
  545. return salesOrderMapper.updateOrderList(salesOrders);
  546. } else {
  547. return 1;
  548. }
  549. }
  550. @Override
  551. public Integer updateReturnOrderList(JSONArray orderList, List<SalesOrder> list) {
  552. List<SalesOrder> salesOrders = new ArrayList<SalesOrder>();
  553. //订单号相同时,判断状态,发货状态,物流公司,物流单号等是否相同,如果有一个不同,则需添加到salesOrders中进行同步
  554. for (int i = 0;i < orderList.size();i++) {
  555. JSONObject orderInfo = orderList.getJSONObject(i);
  556. for (SalesOrder salesOrder : list) {
  557. if (orderInfo.get("relating_order_sn").equals(salesOrder.getSalesOrderId())) {
  558. SalesOrder order = new SalesOrder();
  559. switch (orderInfo.getInt("process_type")) {
  560. case 1://退货
  561. order.setSalesOrderStatus(3);
  562. break;
  563. case 4://换货
  564. order.setSalesOrderStatus(2);
  565. break;
  566. default:
  567. order.setSalesOrderStatus(3);
  568. break;
  569. }
  570. order.setSalesId(salesOrder.getSalesId());
  571. salesOrders.add(order);
  572. }
  573. }
  574. }
  575. //批量修改订单状态等信息
  576. return salesOrderMapper.updateOrderList(list);
  577. }
  578. @Override
  579. public void addSalesOrderList(JSONObject obj) throws Exception{
  580. if (obj == null) {
  581. return;
  582. }
  583. JSONArray orderList = obj.getJSONArray("list");
  584. if (orderList == null || orderList.size() == 0) {
  585. return;
  586. }
  587. String endTime = sysConfigMapper.getSysConfig(1);
  588. for (int i = 0;i < orderList.size();i++) {
  589. JSONObject order = orderList.getJSONObject(i);
  590. //获取订单详情
  591. JSONObject orderInfo = null;
  592. try{
  593. orderInfo = efastOrderService.getOrderFormEfast(order.getString("deal_code"));
  594. }catch (Exception e){
  595. logger.info("获取订单失败;异常编号:505;失败原因:"+ e.getMessage() +"--获取失败订单号:" + orderList.getJSONObject(i).getString("deal_code"));
  596. }
  597. if (orderInfo == null) {
  598. continue;
  599. }
  600. if (!orderInfo.has("orders")) {
  601. continue;
  602. }
  603. //获取订单项集合
  604. JSONArray itemArray = orderInfo.getJSONArray("orders");
  605. if (itemArray == null || itemArray.size() == 0) {
  606. continue;
  607. }
  608. SalesOrder salesOrder = new SalesOrder();
  609. salesOrder.setSalesOrderId(order.getString("order_sn"));//订单编号
  610. salesOrder.setSalesDealCode(order.getString("deal_code"));//交易号
  611. salesOrder.setSalesOrderStatus(1);//订单状态
  612. salesOrder.setSalesShippingStatus(order.getInt("shipping_status"));//发货状态 0:未发货,1:已发货,3:备货中
  613. salesOrder.setSalesPayStatus(order.getInt("pay_status"));//是否付款 0:未付款,2:已付款
  614. salesOrder.setSalesProcessStatus(order.getInt("process_status"));//单据状态
  615. salesOrder.setSalesIsSend(order.getInt("is_send"));//是否通知配货
  616. salesOrder.setSalesIsLocked(order.getInt("is_locked"));//是否锁定
  617. salesOrder.setSalesIsSeparate(order.getInt("is_separate"));//是否缺货
  618. salesOrder.setSalesStatus(order.getInt("order_status"));//订单状态 0:未确认,1:已确认,2:挂起,3:作废
  619. salesOrder.setSalesPostFirm(order.getString("shipping_name").trim());//快递方式代码
  620. salesOrder.setSalesPostNum(order.getString("invoice_no").trim());//快递单号
  621. salesOrder.setSalesOpenId(order.getString("mobile").trim());//唯一标识
  622. salesOrder.setSalesPayType(efastOrderService.getPayType(order.getString("pay_name").trim()));//支付方式
  623. salesOrder.setSalesPayTime(new Date(order.getLong("pay_time")*1000));//支付时间
  624. salesOrder.setSalesUserRemark(order.getString("postscript"));//买家留言
  625. salesOrder.setSalesAdminRemark(order.getString("to_buyer"));//商家留言
  626. salesOrder.setSalesAmount((int)(order.getDouble("order_amount")*100));//应付款
  627. salesOrder.setSalesPayMoney((int)(order.getDouble("money_paid")*100));//已付款
  628. salesOrder.setSalesAddressName(order.getString("consignee").trim());//收货人
  629. String mobile = order.getString("mobile").replaceAll("[\\u00A0]+", "").trim();
  630. salesOrder.setSalesAddressTel(mobile);//收货人电话
  631. salesOrder.setSalesAddressInfo(order.getString("address").replaceAll(" ","-"));//收货地址
  632. salesOrder.setSalesShippingFee((int)(order.getDouble("shipping_fee")*100));//邮费
  633. salesOrder.setSalesCreateTime(DateTimeUtil.parse(order.getString("create_time"),"yyyy-MM-dd HH:mm:ss"));//创建时间
  634. if (order.getInt("shipping_status") == 1) {
  635. if(order.has("delivery_time")){
  636. salesOrder.setSalesSendTime(DateTimeUtil.parse(order.getString("delivery_time"),"yyyy-MM-dd HH:mm:ss"));//发货时间
  637. }else{
  638. salesOrder.setSalesSendTime(new Date());//发货时间
  639. }
  640. }
  641. salesOrder.setSalesDiscountMoney(salesOrder.getSalesAmount() - salesOrder.getSalesPayMoney());//优惠金额
  642. salesOrder.setSalesPledgeMoney(0);//押金金额
  643. salesOrder.setSalesRemainDeposit(0);//待提取金额
  644. salesOrder.setSalesSendType(2);//发货方式,默认为物流发货
  645. salesOrder.setSalesSalesTime(salesOrder.getSalesCreateTime());//订购时间
  646. salesOrder.setSalesWaitMoney(0);//待付金额
  647. salesOrder.setSalesLastMoney(salesOrder.getSalesPayMoney());//本次支付金额
  648. salesOrder.setSalesPayNumber("0000");//支付尾号
  649. salesOrder.setSalesType(1);//订单类型
  650. endTime = order.getString("create_time"); //获取
  651. //查询店铺信息
  652. StoreInfo storeInfo = new StoreInfo();
  653. storeInfo.setStoreEfast(order.getString("sd_id"));
  654. List<StoreInfo> storeList = storeInfoService.listStore(storeInfo);
  655. int storeId = 0;
  656. int companyId = 0;
  657. if (storeList != null && storeList.size() > 0) {
  658. storeInfo = storeList.get(0);
  659. storeId = storeInfo.getStoreId();
  660. companyId = storeInfo.getCompanyId();
  661. }
  662. salesOrder.setSalesStoreId(storeId);//店铺id
  663. salesOrder.setSalesCompanyId(companyId);//销售公司id
  664. List<SalesOrderItem> itemList = new ArrayList<SalesOrderItem>();
  665. for (int j = 0;j < itemArray.size();j++) {
  666. ProductColor color = new ProductColor();
  667. JSONObject itemJson = itemArray.getJSONObject(j);
  668. SalesOrderItem item = new SalesOrderItem();
  669. color.setColorBar(itemJson.getString("goods_sn"));
  670. List<ProductColor> colorList = productService.listproductAndColor(color);
  671. if (colorList != null && colorList.size() > 0) {
  672. color = colorList.get(0);
  673. item.setItemColorBar(itemJson.getString("goods_sn"));//商品69码
  674. item.setItemNum(itemJson.getInt("goods_number"));//商品数量
  675. item.setItemCreateTime(salesOrder.getSalesCreateTime());
  676. item.setItemColorId(color.getColorId());
  677. item.setItemProductColor(color.getColorName());
  678. item.setItemProductDiscount(color.getColorDiscount());
  679. item.setItemProductId(color.getColorProductId());
  680. item.setItemProductName(color.getProductName());
  681. item.setItemProductPic(color.getColorPicture());
  682. item.setItemProductType(color.getProductType());
  683. item.setItemProductPrice(color.getColorPrice());
  684. item.setItemIsSource(1);
  685. itemList.add(item);
  686. }
  687. // else {
  688. // //获取配件信息
  689. // FittingsInfo fittingsInfo = new FittingsInfo();
  690. // fittingsInfo.setFittingsBar(itemJson.getString("goods_sn"));
  691. // List<FittingsInfo> Fittings = fittingsInfoMapper.listFittings(fittingsInfo);
  692. // if (Fittings == null || Fittings.size() == 0) {
  693. // continue;
  694. // }
  695. // fittingsInfo = Fittings.get(0);
  696. // item.setItemColorBar(itemJson.getString("goods_sn"));//商品69码
  697. // item.setItemNum(itemJson.getInt("goods_number"));//商品数量
  698. // item.setItemCreateTime(salesOrder.getSalesCreateTime());
  699. // item.setItemColorId(fittingsInfo.getFittingsId());
  700. // item.setItemProductColor(fittingsInfo.getFittingsName());
  701. // item.setItemProductDiscount(fittingsInfo.getFittingsDiscount());
  702. // item.setItemProductId(fittingsInfo.getProductId());
  703. // item.setItemProductName(fittingsInfo.getFittingsName());
  704. // item.setItemProductPic("");
  705. // item.setItemProductType(0);
  706. // item.setItemProductPrice(fittingsInfo.getFittingsPrice());
  707. // item.setItemIsSource(2);
  708. // itemList.add(item);
  709. // }
  710. }
  711. //添加订单和订单项
  712. try{
  713. salesOrderService.addOrderAndItem(salesOrder,itemList);
  714. }catch (Exception e){
  715. logger.info("添加订单失败,异常编号:505;失败原因:+"+ e.getMessage() +"Efast编号:"+ salesOrder.getSalesOrderId());
  716. }
  717. }
  718. SysConfig sysConfig = new SysConfig(1,endTime);
  719. sysConfigMapper.updateSysConfig(sysConfig);
  720. }
  721. @Override
  722. @Transactional
  723. public boolean syncEfastOrder(JSONObject orderInfo) throws Exception {
  724. if (orderInfo == null) {
  725. throw new RuntimeException("获取Efast订单信息出错!");
  726. }
  727. if (!orderInfo.has("orders")) {
  728. throw new RuntimeException("获取Efast订单信息出错!");
  729. }
  730. //获取订单项集合
  731. JSONArray itemArray = orderInfo.getJSONArray("orders");
  732. if (itemArray == null || itemArray.size() == 0) {
  733. throw new RuntimeException("获取Efast订单信息出错!");
  734. }
  735. SalesOrder salesOrder = new SalesOrder();
  736. salesOrder.setSalesOrderId(orderInfo.getString("order_sn"));//订单编号
  737. salesOrder.setSalesDealCode(orderInfo.getString("deal_code"));//交易号
  738. salesOrder.setSalesOrderStatus(1);//订单状态
  739. salesOrder.setSalesShippingStatus(orderInfo.getInt("shipping_status"));//发货状态 0:未发货,1:已发货,3:备货中
  740. salesOrder.setSalesPayStatus(orderInfo.getInt("pay_status"));//是否付款 0:未付款,2:已付款
  741. salesOrder.setSalesProcessStatus(orderInfo.getInt("process_status"));//单据状态
  742. salesOrder.setSalesIsSend(orderInfo.getInt("is_send"));//是否通知配货
  743. salesOrder.setSalesIsLocked(orderInfo.getInt("is_locked"));//是否锁定
  744. salesOrder.setSalesIsSeparate(orderInfo.getInt("is_separate"));//是否缺货
  745. salesOrder.setSalesStatus(orderInfo.getInt("order_status"));//订单状态 0:未确认,1:已确认,2:挂起,3:作废
  746. salesOrder.setSalesPostFirm(new String(orderInfo.getString("shipping_name")).trim());//快递方式代码
  747. salesOrder.setSalesPostNum(new String(orderInfo.getString("invoice_no")).trim());//快递单号
  748. salesOrder.setSalesOpenId(orderInfo.getString("mobile").trim());//唯一标识
  749. salesOrder.setSalesPayType(efastOrderService.getPayType(orderInfo.getString("pay_name").trim()));//支付方式
  750. salesOrder.setSalesPayTime(new Date(orderInfo.getLong("pay_time")*1000));//支付时间
  751. salesOrder.setSalesUserRemark(orderInfo.getString("postscript"));//买家留言
  752. salesOrder.setSalesAdminRemark(orderInfo.getString("to_buyer"));//商家留言
  753. salesOrder.setSalesAmount((int)(orderInfo.getDouble("order_amount")*100));//应付款
  754. salesOrder.setSalesPayMoney((int)(orderInfo.getDouble("money_paid")*100));//已付款
  755. salesOrder.setSalesAddressName(orderInfo.getString("consignee"));//收货人
  756. String mobile = orderInfo.getString("mobile").replaceAll("[\\u00A0]+", "");
  757. salesOrder.setSalesAddressTel(mobile.trim());//收货人电话
  758. salesOrder.setSalesAddressInfo(orderInfo.getString("address").replaceAll(" ","-"));//收货地址
  759. salesOrder.setSalesShippingFee((int)(orderInfo.getDouble("shipping_fee")*100));//邮费
  760. salesOrder.setSalesCreateTime(new Date(orderInfo.getLong("pay_time")*1000));//创建时间
  761. if (orderInfo.getInt("shipping_status") == 1) {
  762. if(orderInfo.has("delivery_time")){
  763. salesOrder.setSalesSendTime(DateTimeUtil.parse(orderInfo.getString("delivery_time"),"yyyy-MM-dd HH:mm:ss"));//发货时间
  764. }else{
  765. salesOrder.setSalesSendTime(new Date());//发货时间
  766. }
  767. }
  768. salesOrder.setSalesDiscountMoney(salesOrder.getSalesAmount() - salesOrder.getSalesPayMoney());//优惠金额
  769. salesOrder.setSalesPledgeMoney(0);//押金金额
  770. salesOrder.setSalesRemainDeposit(0);//待提取金额
  771. salesOrder.setSalesSendType(2);//发货方式,默认为物流发货
  772. salesOrder.setSalesSalesTime(salesOrder.getSalesCreateTime());//订购时间
  773. salesOrder.setSalesWaitMoney(0);//待付金额
  774. salesOrder.setSalesLastMoney(salesOrder.getSalesPayMoney());//本次支付金额
  775. salesOrder.setSalesPayNumber("0000");//支付尾号
  776. salesOrder.setSalesType(1);//订单类型
  777. //查询店铺信息
  778. StoreInfo storeInfo = new StoreInfo();
  779. if (orderInfo.has("sd_id")) {
  780. storeInfo.setStoreEfast(orderInfo.getString("sd_id"));
  781. } else {
  782. storeInfo.setStoreEfast("1");
  783. }
  784. List<StoreInfo> storeList = storeInfoService.listStore(storeInfo);
  785. int storeId = 0;
  786. int companyId = 0;
  787. if (storeList != null && storeList.size() > 0) {
  788. storeInfo = storeList.get(0);
  789. storeId = storeInfo.getStoreId();
  790. companyId = storeInfo.getCompanyId();
  791. }
  792. salesOrder.setSalesStoreId(storeId);//店铺id
  793. salesOrder.setSalesCompanyId(companyId);//销售公司id
  794. List<SalesOrderItem> itemList = new ArrayList<SalesOrderItem>();
  795. for (int j = 0;j < itemArray.size();j++) {
  796. ProductColor color = new ProductColor();
  797. JSONObject itemJson = itemArray.getJSONObject(j);
  798. SalesOrderItem item = new SalesOrderItem();
  799. color.setColorBar(itemJson.getString("goods_barcode"));
  800. List<ProductColor> colorList = productService.listproductAndColor(color);
  801. if (colorList != null && colorList.size() > 0) {
  802. color = colorList.get(0);
  803. item.setItemColorBar(itemJson.getString("goods_barcode"));//商品69码
  804. item.setItemNum(itemJson.getInt("goods_number"));//商品数量
  805. item.setItemCreateTime(salesOrder.getSalesCreateTime());
  806. item.setItemColorId(color.getColorId());
  807. item.setItemProductColor(color.getColorName());
  808. item.setItemProductDiscount(color.getColorDiscount());
  809. item.setItemProductId(color.getColorProductId());
  810. item.setItemProductName(color.getProductName());
  811. item.setItemProductPic(color.getColorPicture());
  812. item.setItemProductType(color.getProductType());
  813. item.setItemProductPrice(color.getColorPrice());
  814. item.setItemIsSource(1);
  815. itemList.add(item);
  816. }
  817. // else {
  818. // //获取配件信息
  819. // FittingsInfo fittingsInfo = new FittingsInfo();
  820. // fittingsInfo.setFittingsBar(itemJson.getString("goods_barcode"));
  821. // List<FittingsInfo> Fittings = fittingsInfoMapper.listFittings(fittingsInfo);
  822. // if (Fittings == null || Fittings.size() == 0) {
  823. // continue;
  824. // }
  825. // fittingsInfo = Fittings.get(0);
  826. // item.setItemColorBar(itemJson.getString("goods_barcode"));//商品69码
  827. // item.setItemNum(itemJson.getInt("goods_number"));//商品数量
  828. // item.setItemCreateTime(salesOrder.getSalesCreateTime());
  829. // item.setItemColorId(fittingsInfo.getFittingsId());
  830. // item.setItemProductColor(fittingsInfo.getFittingsName());
  831. // item.setItemProductDiscount(fittingsInfo.getFittingsDiscount());
  832. // item.setItemProductId(fittingsInfo.getProductId());
  833. // item.setItemProductName(fittingsInfo.getFittingsName());
  834. // item.setItemProductPic("");
  835. // item.setItemProductType(0);
  836. // item.setItemProductPrice(fittingsInfo.getFittingsPrice());
  837. // item.setItemIsSource(2);
  838. // itemList.add(item);
  839. // }
  840. }
  841. boolean flag = salesOrderService.addOrderAndItem(salesOrder,itemList);
  842. if (flag) {
  843. return true;
  844. } else {
  845. throw new RuntimeException("添加订单项出错!");
  846. }
  847. }
  848. @Override
  849. public Integer getOrderInfoCount(SalesOrder salesOrder) {
  850. return salesOrderMapper.getOrderInfoCount(salesOrder);
  851. }
  852. @Override
  853. public List<SalesOrder> listOrderExcel(SalesOrder salesOrder) {
  854. return salesOrderMapper.listOrderExcel(salesOrder);
  855. }
  856. @Override
  857. public Integer listOrderExcelNum(SalesOrder salesOrder) {
  858. return salesOrderMapper.listOrderExcelNum(salesOrder);
  859. }
  860. @Override
  861. public Integer delOrder(String orderId) {
  862. return salesOrderMapper.delOrder(orderId);
  863. }
  864. @Override
  865. @Transactional
  866. public Integer delSalesOrder(Integer id) {
  867. //查询出库状态判断是否需要返还库存
  868. SalesOrder so = salesOrderMapper.getSalesOrderById(id);
  869. if(so.getSalesDeliver() == 2){
  870. returnInventory(id,so.getSalesWarehouseId());
  871. }
  872. // 检查客诉是否使用订单,如果有使用订单,无法删除
  873. salesOrderMapper.delOrderItem(id);
  874. salesOrderMapper.delSalesOrder(id);
  875. return 1;
  876. }
  877. @Override
  878. public Integer updateOrderItem(SalesOrderItem salesOrderItem) {
  879. return salesOrderMapper.updateOrderItem(salesOrderItem);
  880. }
  881. @Override
  882. public SalesOrder getSalesOrderByLogistics(SalesOrder salesOrder) {
  883. return salesOrderMapper.getSalesOrderByLogistics(salesOrder);
  884. }
  885. @Override
  886. public Integer updateOrderListIsDownload(List<SalesOrder> list) {
  887. return salesOrderMapper.updateOrderListIsDownload(list);
  888. }
  889. @Override
  890. public Integer updateSalesOrderByDealCode(SalesOrder salesOrder) {
  891. return salesOrderMapper.updateSalesOrderByDealCode(salesOrder);
  892. }
  893. @Override
  894. public List<LogisticsInfo> getLogisticsInfo(LogisticsInfo logisticsInfo) {
  895. return salesOrderMapper.getLogisticsInfo(logisticsInfo);
  896. }
  897. @Override
  898. public List<DownsingleRuleInfo> listDownsingleRule() {
  899. return salesOrderMapper.listDownsingleRule();
  900. }
  901. @Override
  902. public Integer getIsMachine(String colorBar) {
  903. return salesOrderMapper.getIsMachine(colorBar);
  904. }
  905. @Override
  906. public Integer getOrderBySalesDealCodeNum(String code) {
  907. return salesOrderMapper.getOrderBySalesDealCodeNum(code);
  908. }
  909. @Override
  910. public Integer listSalesOrderAndItemNum(SalesOrder salesOrder) {
  911. return salesOrderMapper.listSalesOrderAndItemNum(salesOrder);
  912. }
  913. @Override
  914. public List<SalesOrder> listSalesOrderAndItem(SalesOrder salesOrder) {
  915. return salesOrderMapper.listSalesOrderAndItem(salesOrder);
  916. }
  917. @Override
  918. public Integer getSalesOrderNum(SalesOrder salesOrder) {
  919. return salesOrderMapper.getSalesOrderNum(salesOrder);
  920. }
  921. @Transactional
  922. @Override
  923. public Integer listConfirmSalesOrderByBatch(String salesBatchId) {
  924. Integer flag = 0;
  925. SalesOrder salesOrder = new SalesOrder();
  926. salesOrder.setSalesBatchId(salesBatchId);
  927. List<SalesOrder> salesOrderList = salesOrderMapper.listSalesOrder(salesOrder);
  928. if(salesOrderList == null || salesOrderList.size() < 1){
  929. throw new RuntimeException("查询订单失败!");
  930. }
  931. for (SalesOrder so:salesOrderList){
  932. flag = salesOrderService.confirmSalesOrder(so.getSalesId());
  933. }
  934. return flag;
  935. }
  936. @Override
  937. public Integer noticeDistribution(SalesOrder salesOrder) {
  938. // 检查订单是否已经有了配送方式,如果没有不允许通知配货 -- 移到controller中自己添加
  939. // SalesOrder temp = salesOrderMapper.getSalesOrderById(salesOrder.getSalesId());
  940. // if (temp == null || temp.getSalesPostFirm() == null || temp.getSalesPostFirm().isEmpty()) {
  941. // return 0;
  942. // }
  943. return salesOrderMapper.noticeDistribution(salesOrder);
  944. }
  945. @Transactional
  946. @Override
  947. public Integer confirmSalesOrder(Integer saleId) {
  948. /*
  949. * 查询订单
  950. * 查询订单项
  951. * 删除订单
  952. * 修改查询的订单状态
  953. * 添加订单
  954. */
  955. if(saleId == null ){
  956. throw new RuntimeException("确认订单-订单id异常!");
  957. }
  958. SalesOrder salesOrder = salesOrderMapper.getSalesOrderById(saleId);
  959. if(salesOrder == null){
  960. throw new RuntimeException("确认订单-订单异常!");
  961. }
  962. Integer flag = 0;
  963. SalesOrderItem salesOrderItem = new SalesOrderItem();
  964. salesOrderItem.setItemOrderId(salesOrder.getSalesId());
  965. List<SalesOrderItem> salesOrderItemList = salesOrderMapper.listSalesOrderItem(salesOrderItem);
  966. if(salesOrderItemList == null || salesOrderItemList.size()<1){
  967. throw new RuntimeException("确认订单-查询订单项失败!");
  968. }
  969. salesOrder.setSalesOrderItemList(salesOrderItemList);
  970. flag = salesOrderMapper.delOrderById(salesOrder.getSalesId());
  971. if(flag < 1){
  972. throw new RuntimeException("确认订单-删除订单失败!");
  973. }
  974. flag = salesOrderMapper.delOrderItem(salesOrder.getSalesId());
  975. if(flag < 1){
  976. throw new RuntimeException("确认订单-删除订单项失败!");
  977. }
  978. //1:确认 状态
  979. salesOrder.setSalesStatus(1);
  980. boolean fl = salesOrderService.addRstOrderAndIteminfo(salesOrder);
  981. if(!fl){
  982. throw new RuntimeException("确认订单-添加订单失败!");
  983. }
  984. return flag;
  985. }
  986. @Override
  987. public Integer distributionExpress(SalesOrder salesOrder) {
  988. return salesOrderMapper.distributionExpress(salesOrder);
  989. }
  990. @Override
  991. public Integer listSalesPostFirm(SalesOrder salesOrder) {
  992. return salesOrderMapper.listSalesPostFirm(salesOrder);
  993. }
  994. @Override
  995. public Integer listSalesPostFirmByIds(SalesOrder salesOrder) {
  996. return salesOrderMapper.listSalesPostFirmByIds(salesOrder);
  997. }
  998. @Override
  999. public SalesOrder getSalesOrderByPostNum(String postNum) {
  1000. return salesOrderMapper.getSalesOrderByPostNum(postNum);
  1001. }
  1002. @Transactional
  1003. @Override
  1004. public Integer updateDeliver(SalesOrder salesOrder) {
  1005. if(salesOrder.getSalesDeliver() == 2){//标记出库,修改库存
  1006. if(!salesOrderService.updateInventory(salesOrder.getSalesId(),salesOrder.getSalesWarehouseId())){
  1007. return 0;
  1008. }
  1009. }
  1010. if(salesOrder.getSalesDeliver() == 1){//标记未出库,修改库存
  1011. if(!salesOrderService.returnInventory(salesOrder.getSalesId(),salesOrder.getSalesWarehouseId())){
  1012. return 0;
  1013. }
  1014. }
  1015. Integer flag = salesOrderMapper.updateDeliver(salesOrder);
  1016. if(flag < 1){
  1017. throw new RuntimeException("出库失败,订单出库失败。");
  1018. }
  1019. return flag;
  1020. }
  1021. //减少库存
  1022. @Transactional
  1023. @Override
  1024. public boolean updateInventory(Integer salesId,Integer salesWarehouseId){
  1025. SalesOrderItem salesOrderItem = new SalesOrderItem();
  1026. salesOrderItem.setItemOrderId(salesId);
  1027. List<SalesOrderItem> listOrderitem = salesOrderService.listSalesOrderItem(salesOrderItem);
  1028. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  1029. for(SalesOrderItem item : listOrderitem){
  1030. InventoryInfo info = inventoryMapper.getByInventoryByBar(item.getItemColorBar(),salesWarehouseId);
  1031. if(info != null){
  1032. if(info.getInventoryGoodProductNum() >= item.getItemNum()){
  1033. info.setInventoryGoodProductNum(info.getInventoryGoodProductNum() - item.getItemNum());
  1034. info.setInventoryRecentRecord(sdf.format(new Date())+"出库:"+item.getItemNum()+"件");
  1035. Integer flag = inventoryMapper.updateById(info);
  1036. if(flag < 1){
  1037. throw new RuntimeException("【出库】更新库存失败,库存修改失败。");
  1038. }
  1039. //添加日志
  1040. InventoryLog inventoryLog = new InventoryLog();
  1041. inventoryLog.setLogProductName(info.getInventoryProductName());
  1042. inventoryLog.setLogProductBar(info.getInventoryProductBar());
  1043. inventoryLog.setLogRemainingNum(item.getItemNum());
  1044. inventoryLog.setLogType(2);
  1045. inventoryLog.setLogOperationType(2);
  1046. inventoryLog.setLogDesc(sdf.format(new Date())+"待发货标记出库:"+item.getItemNum()+"件");
  1047. inventoryLog.setLogQualityType(1);
  1048. inventoryLog.setLogWarehouseId(salesWarehouseId);
  1049. flag = inventoryLogMapper.insert(inventoryLog);
  1050. if(flag < 1){
  1051. throw new RuntimeException("更新库存失败,增加库存记录失败。");
  1052. }
  1053. }else{
  1054. throw new RuntimeException("更新库存失败,该产品库存不足。");
  1055. }
  1056. }else{
  1057. throw new RuntimeException("更新库存失败,未查询到库存信息,请确认该仓库是否有该产品库存信息。");
  1058. }
  1059. }
  1060. return true;
  1061. }
  1062. //标记未出库时返还库存
  1063. @Transactional
  1064. @Override
  1065. public boolean returnInventory(Integer salesId,Integer salesWarehouseId){
  1066. SalesOrderItem salesOrderItem = new SalesOrderItem();
  1067. salesOrderItem.setItemOrderId(salesId);
  1068. List<SalesOrderItem> listOrderitem = salesOrderService.listSalesOrderItem(salesOrderItem);
  1069. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  1070. for(SalesOrderItem item : listOrderitem){
  1071. InventoryInfo info = inventoryMapper.getByInventoryByBar(item.getItemColorBar(),salesWarehouseId);
  1072. if(info != null){
  1073. info.setInventoryGoodProductNum(info.getInventoryGoodProductNum() + item.getItemNum());
  1074. info.setInventoryRecentRecord(sdf.format(new Date())+"删除/作废/标记未出库时订单返还库存:"+item.getItemNum()+"件");
  1075. Integer flag = inventoryMapper.updateById(info);
  1076. if(flag < 1){
  1077. throw new RuntimeException("【返还库存】更新库存失败,库存修改失败。");
  1078. }
  1079. //添加日志
  1080. InventoryLog inventoryLog = new InventoryLog();
  1081. inventoryLog.setLogProductName(info.getInventoryProductName());
  1082. inventoryLog.setLogProductBar(info.getInventoryProductBar());
  1083. inventoryLog.setLogRemainingNum(item.getItemNum());
  1084. inventoryLog.setLogType(1);
  1085. inventoryLog.setLogOperationType(1);
  1086. inventoryLog.setLogDesc(sdf.format(new Date())+"删除/作废/标记未出库时订单返还库存:"+item.getItemNum()+"件");
  1087. inventoryLog.setLogQualityType(1);
  1088. inventoryLog.setLogWarehouseId(salesWarehouseId);
  1089. flag = inventoryLogMapper.insert(inventoryLog);
  1090. if(flag < 1){
  1091. throw new RuntimeException("更新库存失败,增加库存记录失败。");
  1092. }
  1093. }else{
  1094. throw new RuntimeException("更新库存失败,未查询到库存信息,请确认该仓库是否有该产品库存信息。");
  1095. }
  1096. }
  1097. return true;
  1098. }
  1099. @Override
  1100. public List<SalesOrderItem> getDeliverNum(SalesOrder salesOrder) {
  1101. return salesOrderMapper.getDeliverNum(salesOrder);
  1102. }
  1103. @Override
  1104. public List<Date> getNotSendDate() {
  1105. return salesOrderMapper.getNotSendDate();
  1106. }
  1107. @Override
  1108. public List<SalesOrder> salesOrderListAndItem(SalesOrder salesOrder) {
  1109. return salesOrderMapper.salesOrderListAndItem(salesOrder);
  1110. }
  1111. @Override
  1112. public PagedResult<SalesOrder> salesOrderListAndItemPage(int pageNO, int pageSize, SalesOrder salesOrder, boolean isTotalNum) {
  1113. PageHelper.startPage(pageNO, pageSize, isTotalNum);
  1114. List<SalesOrder> list = salesOrderMapper.salesOrderListAndItem(salesOrder);
  1115. return PageUtil.getPage(list);
  1116. }
  1117. @Override
  1118. public List<SalesOrderItem> selectSalesOrderItemList(Integer salesId) {
  1119. return salesOrderMapper.selectSalesOrderItemList(salesId);
  1120. }
  1121. @Transactional
  1122. @Override
  1123. public Boolean addCorrectInfo(OrderCorrectInfo orderCorrectInfo, String arrayItem, Admin admin) {
  1124. //添加更新信息
  1125. orderCorrectInfo.setAdminId(admin.getAdminId());
  1126. if(salesOrderMapper.addCorrectInfo(orderCorrectInfo) < 1){
  1127. throw new RuntimeException("更正订单-订单异常!");
  1128. }
  1129. //封装订单项数据
  1130. JSONArray jsonArray = JSONArray.fromObject(arrayItem);
  1131. List salesOrderItemList = ((List)JSONArray.toCollection(jsonArray, SalesOrderItem.class));
  1132. for(Object temp : salesOrderItemList){
  1133. SalesOrderItem salesOrderItem = (SalesOrderItem) temp;
  1134. //查询订单项原数量
  1135. SalesOrderItem orderItem = salesOrderMapper.getSalesOrderItem(salesOrderItem.getItemId());
  1136. OrderCorrectItem orderCorrectItem = new OrderCorrectItem();
  1137. orderCorrectItem.setCorrectId(orderCorrectInfo.getCorrectId());
  1138. orderCorrectItem.setOrderItemId(salesOrderItem.getItemId());
  1139. orderCorrectItem.setItemProductColor(salesOrderItem.getItemProductColor());
  1140. orderCorrectItem.setItemProductName(salesOrderItem.getItemProductName());
  1141. orderCorrectItem.setCorrectNum(salesOrderItem.getItemNum());
  1142. orderCorrectItem.setOldNum(orderItem.getItemNum());
  1143. if(orderItem.getItemNum().intValue() != salesOrderItem.getItemNum().intValue()){
  1144. //查询订单判断是否已出库
  1145. SalesOrder so = salesOrderMapper.getSalesOrderById(orderCorrectInfo.getItemOrderId());
  1146. if(so.getSalesDeliver() == 2){
  1147. //返还库存
  1148. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  1149. InventoryInfo info = inventoryMapper.getByInventoryByBar(orderItem.getItemColorBar(),so.getSalesWarehouseId());
  1150. //添加日志
  1151. InventoryLog inventoryLog = new InventoryLog();
  1152. inventoryLog.setLogProductName(info.getInventoryProductName());
  1153. inventoryLog.setLogProductBar(info.getInventoryProductBar());
  1154. inventoryLog.setLogOperationType(1);
  1155. inventoryLog.setLogQualityType(1);
  1156. inventoryLog.setLogWarehouseId(1);
  1157. if(orderItem.getItemNum() > salesOrderItem.getItemNum()){//原数量大于更正后数量
  1158. info.setInventoryGoodProductNum(info.getInventoryGoodProductNum() + (orderItem.getItemNum() - salesOrderItem.getItemNum()));
  1159. info.setInventoryRecentRecord(sdf.format(new Date())+"更正订单返还库存:"+(orderItem.getItemNum() - salesOrderItem.getItemNum())+"件");
  1160. inventoryLog.setLogRemainingNum(orderItem.getItemNum() - salesOrderItem.getItemNum());
  1161. inventoryLog.setLogType(2);
  1162. inventoryLog.setLogDesc(sdf.format(new Date())+"更正订单返还库存:"+(orderItem.getItemNum() - salesOrderItem.getItemNum())+"件");
  1163. }else if(orderItem.getItemNum() < salesOrderItem.getItemNum()){
  1164. if(info.getInventoryGoodProductNum() > (salesOrderItem.getItemNum() - orderItem.getItemNum())){
  1165. info.setInventoryGoodProductNum(info.getInventoryGoodProductNum() - (salesOrderItem.getItemNum() - orderItem.getItemNum()));
  1166. info.setInventoryRecentRecord(sdf.format(new Date())+"更正订单减少库存:"+(orderItem.getItemNum() - salesOrderItem.getItemNum())+"件");
  1167. inventoryLog.setLogRemainingNum(salesOrderItem.getItemNum() - orderItem.getItemNum());
  1168. inventoryLog.setLogType(1);
  1169. inventoryLog.setLogDesc(sdf.format(new Date())+"更正订单减少库存:"+(salesOrderItem.getItemNum() - orderItem.getItemNum())+"件");
  1170. }else{
  1171. return false;
  1172. }
  1173. }
  1174. inventoryMapper.updateById(info);
  1175. inventoryLogMapper.insert(inventoryLog);
  1176. }
  1177. //修改订单项数量
  1178. orderItem.setItemNum(salesOrderItem.getItemNum());
  1179. if(salesOrderMapper.updateOrderItemById(orderItem) < 1){
  1180. throw new RuntimeException("更正订单-修改订单项数量失败!");
  1181. }
  1182. if(salesOrderMapper.addCorrectItem(orderCorrectItem) < 1){
  1183. throw new RuntimeException("更正订单-添加记录失败!");
  1184. }
  1185. }
  1186. }
  1187. return true;
  1188. }
  1189. //更正订单时返还库存
  1190. public boolean returnInventoryByItemId(Integer itemId){
  1191. SalesOrderItem salesOrderItem = new SalesOrderItem();
  1192. salesOrderItem.setItemId(itemId);
  1193. List<SalesOrderItem> listOrderitem = salesOrderService.listSalesOrderItem(salesOrderItem);
  1194. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  1195. for(SalesOrderItem item : listOrderitem){
  1196. SalesOrder so = salesOrderMapper.getSalesOrderById(item.getItemOrderId());
  1197. InventoryInfo info = inventoryMapper.getByInventoryByBar(item.getItemColorBar(),so.getSalesWarehouseId());
  1198. if(info != null){
  1199. info.setInventoryGoodProductNum(info.getInventoryGoodProductNum() + item.getItemNum());
  1200. info.setInventoryRecentRecord(sdf.format(new Date())+"删除/作废订单返还库存:"+item.getItemNum()+"件");
  1201. inventoryMapper.updateById(info);
  1202. //添加日志
  1203. InventoryLog inventoryLog = new InventoryLog();
  1204. inventoryLog.setLogProductName(info.getInventoryProductName());
  1205. inventoryLog.setLogProductBar(info.getInventoryProductBar());
  1206. inventoryLog.setLogRemainingNum(item.getItemNum());
  1207. inventoryLog.setLogType(1);
  1208. inventoryLog.setLogOperationType(1);
  1209. inventoryLog.setLogDesc(sdf.format(new Date())+"删除/作废订单返还库存:"+item.getItemNum()+"件");
  1210. inventoryLog.setLogQualityType(1);
  1211. inventoryLog.setLogWarehouseId(1);
  1212. inventoryLogMapper.insert(inventoryLog);
  1213. }
  1214. }
  1215. return true;
  1216. }
  1217. @Override
  1218. public Integer addCorrectItem(OrderCorrectItem orderCorrectItem) {
  1219. return salesOrderMapper.addCorrectItem(orderCorrectItem);
  1220. }
  1221. @Override
  1222. public OrderCorrectInfo getOrderCorrectInfo(Integer correctId) {
  1223. return salesOrderMapper.getOrderCorrectInfo(correctId);
  1224. }
  1225. @Override
  1226. public List<OrderCorrectItem> listOrderCorrectItem(Integer correctId) {
  1227. return salesOrderMapper.listOrderCorrectItem(correctId);
  1228. }
  1229. @Override
  1230. public SalesOrderItem getSalesOrderItem(Integer itemId) {
  1231. return salesOrderMapper.getSalesOrderItem(itemId);
  1232. }
  1233. @Override
  1234. public Integer updateOrderItemById(SalesOrderItem salesOrderItem) {
  1235. return salesOrderMapper.updateOrderItemById(salesOrderItem);
  1236. }
  1237. @Override
  1238. public List<OrderCorrectInfo> listOrderCorrectInfo(Integer orderId) {
  1239. return salesOrderMapper.listOrderCorrectInfo(orderId);
  1240. }
  1241. @Override
  1242. public OrderWarehouse selectAdminWarehouse(Integer adminId) {
  1243. return salesOrderMapper.selectAdminWarehouse(adminId);
  1244. }
  1245. @Override
  1246. public List<OrderWarehouse> listOrderWarehouse() {
  1247. return salesOrderMapper.listOrderWarehouse();
  1248. }
  1249. @Transactional
  1250. @Override
  1251. public List<SalesOrder> salesOrderAndItemStat(SalesOrder salesOrder) {
  1252. return salesOrderMapper.salesOrderAndItemStat(salesOrder);
  1253. }
  1254. @Transactional
  1255. @Override
  1256. public Integer splitOrder(String mainOrderId, List<SalesOrder> salesOrderList) {
  1257. Integer flag = 0;
  1258. SalesOrder mainOrder = new SalesOrder();
  1259. mainOrder.setSalesDealCode(mainOrderId);
  1260. List<SalesOrder> orderList = salesOrderService.salesOrderListAndItem(mainOrder);
  1261. SalesOrder or = new SalesOrder();
  1262. or.setSalesMainOrderId(orderList.get(0).getSalesId());
  1263. //该订单为主订单
  1264. List<SalesOrder> sonSalesOrderList = salesOrderService.salesOrderListAndItem(or);
  1265. orderList.addAll(sonSalesOrderList);
  1266. for (SalesOrder salesOrder:salesOrderList) {
  1267. for (int j=0;j<orderList.size();j++){
  1268. if(salesOrder.getSalesDealCode().equals(orderList.get(j).getSalesDealCode())){
  1269. orderList.remove(j);
  1270. }
  1271. }
  1272. if(salesOrder.getSalesId() != null && salesOrder.getSalesShippingStatus() > 0){
  1273. continue;
  1274. }
  1275. //create order item
  1276. for (SalesOrderItem itemSaleItem:salesOrder.getSalesOrderItemList()) {
  1277. ProductColor productColor = productMapper.getProductBySku(itemSaleItem.getItemColorBar());
  1278. itemSaleItem.setItemProductId(productColor.getColorProductId());
  1279. itemSaleItem.setItemProductColor(productColor.getColorName());
  1280. itemSaleItem.setColorAbbreviation(productColor.getColorAbbreviation());
  1281. itemSaleItem.setProductAbbreviation(productColor.getColorAbbreviation());
  1282. itemSaleItem.setItemIsSource(1);
  1283. itemSaleItem.setItemProductDiscount(productColor.getColorDiscount());
  1284. itemSaleItem.setItemProductPrice(productColor.getColorPrice());
  1285. itemSaleItem.setItemProductPic(productColor.getColorPicture());
  1286. itemSaleItem.setItemProductName(productColor.getProductName());
  1287. itemSaleItem.setItemProductType(productColor.getProductType());
  1288. itemSaleItem.setItemColorId(productColor.getColorId());
  1289. if(salesOrder.getSalesId() != null){
  1290. itemSaleItem.setItemOrderId(salesOrder.getSalesId());
  1291. }
  1292. }
  1293. Integer salesId = salesOrder.getSalesId();
  1294. if(salesId == null){
  1295. //添加订单和订单项
  1296. salesOrderService.addOrderAndIteminfo(salesOrder,salesOrder.getSalesOrderItemList());
  1297. }else{
  1298. //其余全部做修改,删除订单项,添加新的订单项
  1299. flag = salesOrderMapper.delOrderItem(salesOrder.getSalesId());
  1300. if(flag < 1){
  1301. throw new RuntimeException("删除订单项失败,订单交易号:"+salesOrder.getSalesDealCode());
  1302. }
  1303. flag = salesOrderMapper.addOrderItemList(salesOrder.getSalesOrderItemList());
  1304. if(flag < 1){
  1305. throw new RuntimeException("添加订单项失败,订单交易号:"+salesOrder.getSalesDealCode());
  1306. }
  1307. }
  1308. }
  1309. for (SalesOrder soDelete:orderList) {
  1310. flag = salesOrderService.delSalesOrder(soDelete.getSalesId());
  1311. if(flag < 1){
  1312. throw new RuntimeException("删除订单失败,删除订单交易号:"+soDelete.getSalesDealCode());
  1313. }
  1314. }
  1315. return flag;
  1316. }
  1317. @Override
  1318. public AfterrulesInfo getAfterrulesInfo(Integer storeId) {
  1319. return salesOrderMapper.getAfterrulesInfo(storeId);
  1320. }
  1321. @Override
  1322. public Integer updateOrderItemReturnNum(SalesOrderItem salesOrderItem) {
  1323. return salesOrderMapper.updateOrderItemReturnNum(salesOrderItem);
  1324. }
  1325. @Override
  1326. public List<SmsSignatureInfo> listSmsSignatureInfo(SmsSignatureInfo smsSignatureInfo) {
  1327. return salesOrderMapper.listSmsSignatureInfo(smsSignatureInfo);
  1328. }
  1329. @Override
  1330. public List<SmsTemplateInfo> listSmsTemplateInfo(SmsTemplateInfo smsTemplateInfo) {
  1331. return salesOrderMapper.listSmsTemplateInfo(smsTemplateInfo);
  1332. }
  1333. @Override
  1334. public SalesOrder getStatusNum() {
  1335. return salesOrderMapper.getStatusNum();
  1336. }
  1337. }