FxController.java 142 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534
  1. package com.ssj.sys.controller;
  2. import java.beans.BeanInfo;
  3. import java.beans.Introspector;
  4. import java.beans.PropertyDescriptor;
  5. import java.io.File;
  6. import java.io.IOException;
  7. import java.lang.reflect.Method;
  8. import java.util.ArrayList;
  9. import java.util.Arrays;
  10. import java.util.Date;
  11. import java.util.HashMap;
  12. import java.util.LinkedHashMap;
  13. import java.util.List;
  14. import java.util.Map;
  15. import javax.servlet.ServletOutputStream;
  16. import javax.servlet.http.HttpServletRequest;
  17. import javax.servlet.http.HttpServletResponse;
  18. import javax.servlet.http.HttpSession;
  19. import org.apache.commons.lang3.StringUtils;
  20. import org.apache.poi.hssf.usermodel.HSSFCellStyle;
  21. import org.apache.poi.hssf.util.HSSFColor;
  22. import org.apache.poi.xssf.usermodel.XSSFCell;
  23. import org.apache.poi.xssf.usermodel.XSSFCellStyle;
  24. import org.apache.poi.xssf.usermodel.XSSFFont;
  25. import org.apache.poi.xssf.usermodel.XSSFRichTextString;
  26. import org.apache.poi.xssf.usermodel.XSSFRow;
  27. import org.apache.poi.xssf.usermodel.XSSFSheet;
  28. import org.apache.poi.xssf.usermodel.XSSFWorkbook;
  29. import org.springframework.beans.factory.annotation.Autowired;
  30. import org.springframework.core.io.ClassPathResource;
  31. import org.springframework.data.domain.Page;
  32. import org.springframework.data.domain.Sort.Direction;
  33. import org.springframework.stereotype.Controller;
  34. import org.springframework.ui.Model;
  35. import org.springframework.web.bind.annotation.PathVariable;
  36. import org.springframework.web.bind.annotation.RequestMapping;
  37. import org.springframework.web.bind.annotation.RequestMethod;
  38. import org.springframework.web.bind.annotation.RequestParam;
  39. import org.springframework.web.bind.annotation.ResponseBody;
  40. import org.springframework.web.multipart.MultipartFile;
  41. import org.springframework.web.multipart.MultipartHttpServletRequest;
  42. import com.ssj.bean.common.files.domain.FileInfo;
  43. import com.ssj.bean.common.framework.core.domain.Response;
  44. import com.ssj.bean.conch.conch.domain.ConchDerver;
  45. import com.ssj.bean.sys.fx.domain.Device;
  46. import com.ssj.bean.sys.fx.domain.DeviceAct;
  47. import com.ssj.bean.sys.fx.domain.DeviceParts;
  48. import com.ssj.bean.sys.fx.domain.DevicePartsAct;
  49. import com.ssj.bean.sys.fx.domain.Merchant;
  50. import com.ssj.bean.sys.fx.domain.MerchantBackup;
  51. import com.ssj.bean.sys.organization.domain.Organization;
  52. import com.ssj.bean.sys.role.domain.Admin;
  53. import com.ssj.bean.weixin.libmy.domain.TbLibJoin;
  54. import com.ssj.bean.weixin.libmy.domain.TbLibJoinConsume;
  55. import com.ssj.bean.weixin.problem.domain.CnArea;
  56. import com.ssj.framework.basic.common.bean.SplitPage;
  57. import com.ssj.framework.basic.utils.DateHelper;
  58. import com.ssj.framework.core.common.controller.BaseController;
  59. import com.ssj.framework.core.util.PropertiesUtil;
  60. import com.ssj.framework.core.util.ResponseConstant;
  61. import com.ssj.framework.core.util.ResponseEntity;
  62. import com.ssj.framework.core.util.WebUtil;
  63. import com.ssj.framework.files.service.FileInfoService;
  64. import com.ssj.framework.idworker.IdWorker;
  65. import com.ssj.service.conch.conch.service.ConchDerverService;
  66. import com.ssj.service.conch.parents.v1.dto.PositionSchoolV1Dto;
  67. import com.ssj.service.sys.fx.service.DeviceActService;
  68. import com.ssj.service.sys.fx.service.DevicePartsActService;
  69. import com.ssj.service.sys.fx.service.DevicePartsService;
  70. import com.ssj.service.sys.fx.service.DeviceService;
  71. import com.ssj.service.sys.fx.service.MerchantAreaService;
  72. import com.ssj.service.sys.fx.service.MerchantBackupService;
  73. import com.ssj.service.sys.fx.service.MerchantService;
  74. import com.ssj.service.sys.fx.service.MerchantSignService;
  75. import com.ssj.service.sys.role.service.AdminService;
  76. import com.ssj.service.weixin.library.service.ILibJoinConsumeService;
  77. import com.ssj.service.weixin.library.service.ILibJoinService;
  78. import com.ssj.service.weixin.problem.service.CnAreaService;
  79. import com.ssj.sys.util.thirdparty.excel.CustomizeToExcel;
  80. import com.ssj.sys.util.thirdparty.excel.ExcelColumn;
  81. import com.ssj.sys.utils.ExcelUtils;
  82. @RequestMapping("sys/fx")
  83. @Controller
  84. public class FxController extends BaseController {
  85. @Autowired
  86. private DevicePartsService devicePartsService;
  87. @Autowired
  88. private DeviceService deviceService;
  89. @Autowired
  90. private MerchantService merchantService;
  91. @Autowired
  92. private MerchantBackupService merchantBackupService;
  93. @Autowired
  94. private MerchantSignService merchantSignService;
  95. @Autowired
  96. private ConchDerverService conchDerverService;
  97. @Autowired
  98. private AdminService adminService;
  99. @Autowired
  100. private FileInfoService fileInfoService;
  101. @Autowired
  102. private DeviceActService deviceActService;
  103. @Autowired
  104. private DevicePartsActService devicePartsActService;
  105. @Autowired
  106. private CnAreaService cnAreaService;
  107. @Autowired
  108. private ILibJoinService libJoinService;
  109. @Autowired
  110. private ILibJoinConsumeService libJoinConsumeService;
  111. @Autowired
  112. private MerchantAreaService merchantAreaService;
  113. //库存管理员查询所有设备
  114. @RequestMapping("/deviceAllList")
  115. public String deviceAllList(Model model,
  116. @RequestParam(required = false, defaultValue = "100") int pageSize,
  117. @RequestParam(required = false, defaultValue = "1") int pageNo)
  118. throws Exception {
  119. Map<String, Object> params = new HashMap<String, Object>();
  120. params.put("LIKE_imei", request.getParameter("LIKE_imei")==null?"":request.getParameter("LIKE_imei"));
  121. params.put("LIKE_deviceNumber", request.getParameter("LIKE_deviceNumber")==null?"":request.getParameter("LIKE_deviceNumber"));
  122. params.put("LIKE_deviceModel", request.getParameter("LIKE_deviceModel")==null?"":request.getParameter("LIKE_deviceModel"));
  123. params.put("LIKE_deviceCode", request.getParameter("LIKE_deviceCode")==null?"":request.getParameter("LIKE_deviceCode"));
  124. params.put("EQ_isSpan", request.getParameter("EQ_isSpan")==null?"":request.getParameter("EQ_isSpan"));
  125. params.put("EQ_status", request.getParameter("EQ_status")==null?"":request.getParameter("EQ_status"));
  126. if(StringUtils.isNotEmpty(request.getParameter("EQ_orgCode"))){
  127. params.put("EQ_orgCode", request.getParameter("EQ_orgCode"));
  128. }
  129. params.put("EQ_batchCode", request.getParameter("EQ_batchCode")==null?"":request.getParameter("EQ_batchCode"));
  130. params.put("EQ_emsNumber", request.getParameter("EQ_emsNumber")==null?"":request.getParameter("EQ_emsNumber"));
  131. params.put("LIKE_remarks", request.getParameter("LIKE_remarks")==null?"":request.getParameter("LIKE_remarks"));
  132. SplitPage sp = new SplitPage();
  133. sp.setAction(request.getRequestURI());
  134. sp.setPageNo(pageNo);
  135. sp.setPageSize(pageSize);
  136. sp.setParams(params);
  137. Page<Device> page = deviceService.findDeviceByPage(params, initPage(pageNo, pageSize, Direction.DESC, new String[]{"updateTime"}));
  138. sp.setRowCnt((int) page.getTotalElements());
  139. model.addAttribute("list", page.getContent());
  140. model.addAttribute("listNavigatHtml", sp.getSysPaginHtml());
  141. model.addAttribute("page", sp);
  142. model.addAttribute("search", params);
  143. List<Merchant> list=merchantService.findMerchantByPage();
  144. model.addAttribute("poslist", list);
  145. return "sys/fx/deviceAllList";
  146. }
  147. //当前商户下的所有的设备,支持imei1范围,和批次号
  148. @RequestMapping("/deviceList")
  149. public String deviceList(Model model,
  150. @RequestParam(required = false, defaultValue = "100") int pageSize,
  151. @RequestParam(required = false, defaultValue = "1") int pageNo)
  152. throws Exception {
  153. HttpSession session = request.getSession();
  154. Admin admin =(Admin) session.getAttribute("admin");
  155. Merchant merchant=merchantService.getMerchantByPosCode(admin.getLoginName());
  156. Map<String, Object> params = new HashMap<String, Object>();
  157. params.put("LIKE_imei", request.getParameter("LIKE_imei")==null?"":request.getParameter("LIKE_imei"));
  158. params.put("LIKE_deviceNumber", request.getParameter("LIKE_deviceNumber")==null?"":request.getParameter("LIKE_deviceNumber"));
  159. params.put("LIKE_deviceModel", request.getParameter("LIKE_deviceModel")==null?"":request.getParameter("LIKE_deviceModel"));
  160. params.put("LIKE_deviceCode", request.getParameter("LIKE_deviceCode")==null?"":request.getParameter("LIKE_deviceCode"));
  161. params.put("EQ_isSpan", request.getParameter("EQ_isSpan")==null?"":request.getParameter("EQ_isSpan"));
  162. params.put("EQ_status", request.getParameter("EQ_status")==null?"":request.getParameter("EQ_status"));
  163. params.put("EQ_batchCode", request.getParameter("EQ_batchCode")==null?"":request.getParameter("EQ_batchCode"));
  164. params.put("EQ_emsNumber", request.getParameter("EQ_emsNumber")==null?"":request.getParameter("EQ_emsNumber"));
  165. params.put("EQ_type", request.getParameter("EQ_type")==null?"":request.getParameter("EQ_type"));
  166. params.put("LIKE_remarks", request.getParameter("LIKE_remarks")==null?"":request.getParameter("LIKE_remarks"));
  167. if(StringUtils.isNotEmpty(request.getParameter("EQ_orgCode"))){
  168. params.put("EQ_orgCode", request.getParameter("EQ_orgCode"));
  169. }else{
  170. if("SSJ-FX".equals(merchant.getOrgCode())){
  171. params.put("LIKE_orgCode",merchant.getOrgCode());
  172. }else{
  173. List<String> orgCodes=new ArrayList<String>();
  174. orgCodes.add(merchant.getOrgCode());
  175. List<Merchant> merchants=merchantService.getMerchantByParentPosCode(merchant.getPosCode());
  176. for (Merchant merchant2 : merchants) {
  177. orgCodes.add(merchant2.getOrgCode());
  178. }
  179. params.put("IN_orgCode",orgCodes);
  180. }
  181. }
  182. SplitPage sp = new SplitPage();
  183. sp.setAction(request.getRequestURI());
  184. sp.setPageNo(pageNo);
  185. sp.setPageSize(pageSize);
  186. sp.setParams(params);
  187. Page<Device> page = deviceService.findDeviceByPage(params, initPage(pageNo, pageSize, Direction.ASC, new String[]{"updateTime"}));
  188. sp.setRowCnt((int) page.getTotalElements());
  189. List<Device> orderList=new ArrayList<Device>();
  190. List<Device> deviceList= page.getContent();
  191. for (Device device : deviceList) {
  192. if(device.getOrgCode().equals(merchant.getOrgCode())){
  193. orderList.add(0, device);
  194. }else{
  195. orderList.add(device);
  196. }
  197. }
  198. model.addAttribute("list",orderList);
  199. model.addAttribute("listNavigatHtml", sp.getSysPaginHtml());
  200. model.addAttribute("page", sp);
  201. model.addAttribute("search", params);
  202. List<Merchant> list=new ArrayList<Merchant>();
  203. if("SSJ-FX".equals(merchant.getOrgCode())){
  204. list=merchantService.getMerchantByLikeOrgCode(merchant.getOrgCode());
  205. }else{
  206. list=merchantService.getMerchantByParentPosCode(merchant.getPosCode());
  207. list.add(merchant);
  208. }
  209. model.addAttribute("poslist", list);
  210. model.addAttribute("merchant", merchant);
  211. return "sys/fx/deviceList";
  212. }
  213. //当前商户下的所有的设备,支持imei1范围,和批次号
  214. @RequestMapping("/deviceActivList")
  215. public String deviceActivationList(Model model,
  216. @RequestParam(required = false, defaultValue = "100") int pageSize,
  217. @RequestParam(required = false, defaultValue = "1") int pageNo)
  218. throws Exception {
  219. HttpSession session = request.getSession();
  220. Admin admin =(Admin) session.getAttribute("admin");
  221. Merchant merchant=merchantService.getMerchantByPosCode(admin.getLoginName());
  222. Map<String, Object> params = new HashMap<String, Object>();
  223. params.put("GTE_imei", request.getParameter("GTE_imei")==null?"":request.getParameter("GTE_imei"));
  224. params.put("LTE_imei", request.getParameter("LTE_imei")==null?"":request.getParameter("LTE_imei"));
  225. params.put("EQ_isSpan", request.getParameter("EQ_isSpan")==null?"":request.getParameter("EQ_isSpan"));
  226. params.put("EQ_status", request.getParameter("EQ_status")==null?"":request.getParameter("EQ_status"));
  227. params.put("EQ_batchCode", request.getParameter("EQ_batchCode")==null?"":request.getParameter("EQ_batchCode"));
  228. params.put("EQ_emsNumber", request.getParameter("EQ_emsNumber")==null?"":request.getParameter("EQ_emsNumber"));
  229. params.put("EQ_type", request.getParameter("EQ_type")==null?"":request.getParameter("EQ_type"));
  230. params.put("LIKE_remarks", request.getParameter("LIKE_remarks")==null?"":request.getParameter("LIKE_remarks"));
  231. params.put("seachDerver", request.getParameter("seachDerver")==null?"":request.getParameter("seachDerver"));
  232. if(StringUtils.isNotEmpty(request.getParameter("EQ_orgCode"))){
  233. params.put("EQ_orgCode", request.getParameter("EQ_orgCode"));
  234. }else{
  235. if("SSJ-FX".equals(merchant.getOrgCode())){
  236. params.put("LIKE_orgCode",merchant.getOrgCode());
  237. }else{
  238. List<String> orgCodes=new ArrayList<String>();
  239. orgCodes.add(merchant.getOrgCode());
  240. List<Merchant> merchants=merchantService.getMerchantByParentPosCode(merchant.getPosCode());
  241. for (Merchant merchant2 : merchants) {
  242. orgCodes.add(merchant2.getOrgCode());
  243. }
  244. params.put("IN_orgCode",orgCodes);
  245. }
  246. }
  247. SplitPage sp = new SplitPage();
  248. sp.setAction(request.getRequestURI());
  249. sp.setPageNo(pageNo);
  250. sp.setPageSize(pageSize);
  251. sp.setParams(params);
  252. Page<Map<String, Object>> page = deviceService.findDeviceActivationList(params, initPage(pageNo, pageSize));
  253. sp.setRowCnt((int) page.getTotalElements());
  254. List<Map<String, Object>> orderList=new ArrayList<Map<String, Object>>();
  255. List<Map<String, Object>> deviceList= page.getContent();
  256. for (Map<String, Object> device : deviceList) {
  257. if(device.get("org_code").equals(merchant.getOrgCode())){
  258. orderList.add(0, device);
  259. }else{
  260. orderList.add(device);
  261. }
  262. }
  263. model.addAttribute("list",orderList);
  264. model.addAttribute("listNavigatHtml", sp.getSysPaginHtml());
  265. model.addAttribute("page", sp);
  266. model.addAttribute("search", params);
  267. List<Merchant> list=new ArrayList<Merchant>();
  268. if("SSJ-FX".equals(merchant.getOrgCode())){
  269. list=merchantService.getMerchantByLikeOrgCode(merchant.getOrgCode());
  270. }else{
  271. list=merchantService.getMerchantByParentPosCode(merchant.getPosCode());
  272. list.add(merchant);
  273. }
  274. model.addAttribute("poslist", list);
  275. model.addAttribute("merchant", merchant);
  276. return "sys/fx/deviceActivList";
  277. }
  278. @RequestMapping("/merchantAllList")
  279. public String merchantAllList(Model model,
  280. @RequestParam(required = false, defaultValue = "10") int pageSize,
  281. @RequestParam(required = false, defaultValue = "1") int pageNo)throws Exception {
  282. HttpSession session = request.getSession();
  283. Admin admin =(Admin) session.getAttribute("admin");
  284. Merchant merchant=merchantService.getMerchantByPosCode(admin.getLoginName());
  285. Map<String, Object> params = new HashMap<String, Object>();
  286. params.put("LIKE_unitName", request.getParameter("LIKE_unitName")==null?"":request.getParameter("LIKE_unitName"));
  287. params.put("LIKE_posCode", request.getParameter("LIKE_posCode")==null?"":request.getParameter("LIKE_posCode"));
  288. if(request.getParameter("signType")!=null ) {
  289. if("0".equals(request.getParameter("signType").toString())){
  290. params.put("EQ_signType", 0);
  291. }else if("1".equals(request.getParameter("signType").toString())){
  292. params.put("GTE_signType", 1);
  293. }
  294. }
  295. params.put("NOT_status", 4);
  296. String orgCode=request.getParameter("LIKE_orgCode")==null?"":request.getParameter("LIKE_orgCode");
  297. if(StringUtils.isNotEmpty(orgCode)) {
  298. params.put("LIKE_orgCode", orgCode);
  299. }else {
  300. params.put("LIKE_orgCode", merchant.getOrgCode());
  301. }
  302. SplitPage sp = new SplitPage();
  303. sp.setAction(request.getRequestURI());
  304. sp.setPageNo(pageNo);
  305. sp.setPageSize(pageSize);
  306. sp.setParams(params);
  307. Page<Merchant> page = merchantService.findMerchantByPage(params, initPage(pageNo, pageSize, Direction.DESC, new String[]{"createTime"}));
  308. sp.setRowCnt((int) page.getTotalElements());
  309. model.addAttribute("list", page.getContent());
  310. model.addAttribute("listNavigatHtml", sp.getSysPaginHtml());
  311. model.addAttribute("page", sp);
  312. params.put("signType", request.getParameter("signType")==null?"":request.getParameter("signType"));
  313. model.addAttribute("search", params);
  314. model.addAttribute("curMerchant", merchant);
  315. return "sys/fx/merchantAllList";
  316. }
  317. @RequestMapping("/merchantBackupList")
  318. public String merchantBackupList(Model model,
  319. @RequestParam(required = false, defaultValue = "10") int pageSize,
  320. @RequestParam(required = false, defaultValue = "1") int pageNo)throws Exception {
  321. HttpSession session = request.getSession();
  322. Admin admin =(Admin) session.getAttribute("admin");
  323. Merchant merchant=merchantService.getMerchantByPosCode(admin.getLoginName());
  324. Map<String, Object> params = new HashMap<String, Object>();
  325. params.put("LIKE_unitName", request.getParameter("LIKE_unitName")==null?"":request.getParameter("LIKE_unitName"));
  326. params.put("LIKE_posCode", request.getParameter("LIKE_posCode")==null?"":request.getParameter("LIKE_posCode"));
  327. params.put("EQ_backupMonth", request.getParameter("EQ_backupMonth")==null||StringUtils.isEmpty(request.getParameter("EQ_backupMonth").toString())? DateHelper.format(new Date(),"yyyy-MM") :request.getParameter("EQ_backupMonth").toString());
  328. if(request.getParameter("signType")!=null ) {
  329. if("0".equals(request.getParameter("signType").toString())){
  330. params.put("EQ_signType", 0);
  331. }else if("1".equals(request.getParameter("signType").toString())){
  332. params.put("GTE_signType", 1);
  333. }
  334. }
  335. params.put("NOT_status", 4);
  336. SplitPage sp = new SplitPage();
  337. sp.setAction(request.getRequestURI());
  338. sp.setPageNo(pageNo);
  339. sp.setPageSize(pageSize);
  340. sp.setParams(params);
  341. Page<MerchantBackup> page = merchantBackupService.findMerchantBackupByPage(params, initPage(pageNo, pageSize, Direction.DESC, new String[]{"createTime"}));
  342. sp.setRowCnt((int) page.getTotalElements());
  343. model.addAttribute("list", page.getContent());
  344. model.addAttribute("listNavigatHtml", sp.getSysPaginHtml());
  345. model.addAttribute("page", sp);
  346. params.put("signType", request.getParameter("signType")==null?"":request.getParameter("signType"));
  347. model.addAttribute("search", params);
  348. model.addAttribute("curMerchant", merchant);
  349. return "sys/fx/merchantBackupList";
  350. }
  351. //得到下一级的商户
  352. private List<Merchant> findMerchantByNext(String orgCode){
  353. List<Merchant> list=new ArrayList<Merchant>();
  354. if(StringUtils.isNotEmpty(orgCode)) {
  355. List<Merchant> merchants=merchantService.getMerchantByLikeOrgCode(orgCode);
  356. if(merchants!=null) {
  357. for (Merchant merchant : merchants) {
  358. String curOrgCode=merchant.getOrgCode();
  359. if(curOrgCode.replaceAll(orgCode+"-", "").indexOf("-")==-1) {
  360. list.add(merchant);
  361. }
  362. }
  363. }
  364. }
  365. return list;
  366. }
  367. //批量分配设备商户下
  368. @RequestMapping("/merchantTree")
  369. @ResponseBody
  370. public List<Organization> merchantTree(Model model,String id)throws Exception {
  371. List<Merchant> list=new ArrayList<Merchant>();
  372. List<Organization> orgList=new ArrayList<Organization>();
  373. if(StringUtils.isEmpty(id)) {
  374. HttpSession session = request.getSession();
  375. Admin admin =(Admin) session.getAttribute("admin");
  376. Merchant merchant=merchantService.getMerchantByPosCode(admin.getLoginName());
  377. if(merchant!=null && merchant.getOrgCode().equals("SSJ-FX")) {
  378. list=findMerchantByNext("SSJ-FX");
  379. }else {
  380. list.add(merchant);
  381. }
  382. }else {
  383. list=findMerchantByNext(id);
  384. }
  385. for (Merchant merchant : list) {
  386. List<Merchant> ms=merchantService.getMerchantByLikeOrgCode(merchant.getOrgCode());
  387. Organization org=new Organization();
  388. org.setArea(merchant.getUnitName());
  389. org.setCity(merchant.getUnitName());
  390. org.setName(merchant.getUnitName());
  391. org.setCode(merchant.getOrgCode());
  392. org.setCreateTime(merchant.getCreateTime());
  393. org.setId(merchant.getOrgCode());
  394. org.setpId(id);
  395. org.setStatus(1);
  396. org.setIsParent((ms!=null && ms.size()>1) ? true : false);
  397. org.setSubCount(ms.size());
  398. orgList.add(org);
  399. }
  400. return orgList;
  401. }
  402. @RequestMapping("/merchantAllMain")
  403. public String merchantAllMain(Model model)throws Exception {
  404. return "sys/fx/merchantAllMain";
  405. }
  406. @RequestMapping("/merchantSignList")
  407. public String merchantSignList(Model model,
  408. @RequestParam(required = false, defaultValue = "100") int pageSize,
  409. @RequestParam(required = false, defaultValue = "1") int pageNo)throws Exception {
  410. Map<String, Object> params = new HashMap<String, Object>();
  411. params.put("merchantId", request.getParameter("merchantId")==null?"":request.getParameter("merchantId"));
  412. params.put("signType", request.getParameter("signType")==null?"":request.getParameter("signType"));
  413. SplitPage sp = new SplitPage();
  414. sp.setAction(request.getRequestURI());
  415. sp.setPageNo(pageNo);
  416. sp.setPageSize(pageSize);
  417. sp.setParams(params);
  418. Page<Map<String, Object>> page = merchantSignService.findMerchantSignByPage(params, initPage(pageNo, pageSize));
  419. sp.setRowCnt((int) page.getTotalElements());
  420. model.addAttribute("list", page.getContent());
  421. model.addAttribute("listNavigatHtml", sp.getSysPaginHtml());
  422. model.addAttribute("page", sp);
  423. model.addAttribute("search", params);
  424. List<Merchant> list=merchantService.findMerchantByPage();
  425. model.addAttribute("poslist", list);
  426. return "sys/fx/merchantSignList";
  427. }
  428. @RequestMapping(value = "/exportMerchantSignList", method = RequestMethod.POST)
  429. @ResponseBody
  430. public void exportMerchantSignList( HttpServletRequest request, HttpServletResponse response) {
  431. ServletOutputStream os = null;
  432. try {
  433. String libName="加油包明细";
  434. os = response.getOutputStream(); //获得输出流
  435. response.reset(); //清空输出流
  436. String fileName = new String(libName.getBytes("gb2312"), "ISO8859-1") +".xlsx";
  437. response.setHeader("Content-disposition", "attachment; filename="+ fileName); //设定输出文件头
  438. response.setContentType("application/vnd.ms-excel;charset=UTF-8");
  439. response.setCharacterEncoding("utf-8");
  440. Map<String, Object> params = new HashMap<String, Object>();
  441. params.put("merchantId", request.getParameter("merchantId")==null?"":request.getParameter("merchantId"));
  442. params.put("signType", request.getParameter("signType")==null?"":request.getParameter("signType"));
  443. Page<Map<String, Object>> page = merchantSignService.findMerchantSignByPage(params, initPage(1, 10000));
  444. List<Map<String, Object>> list=new ArrayList<Map<String,Object>>();
  445. for (Map<String, Object> map : page.getContent()) {
  446. if(map.get("sign_type").toString().equals("4")) {
  447. map.put("sign_type","加油包-月包");
  448. }else if(map.get("sign_type").toString().equals("5")) {
  449. map.put("sign_type","加油包-量包");
  450. }
  451. if(map.get("status").toString().equals("0")) {
  452. map.put("status","服务中");
  453. }else if(map.get("status").toString().equals("1")) {
  454. map.put("status","已结束");
  455. }else if(map.get("status").toString().equals("2")) {
  456. map.put("status","未激活");
  457. }
  458. }
  459. List<ExcelColumn> myColumns3 = new ArrayList<ExcelColumn>();
  460. myColumns3.add(new ExcelColumn("商户", "pos_code", 20));
  461. myColumns3.add(new ExcelColumn("商户名称", "unit_name", 20));
  462. myColumns3.add(new ExcelColumn("加油包类型", "sign_type", 20));
  463. myColumns3.add(new ExcelColumn("加油包数量", "num", 20));
  464. myColumns3.add(new ExcelColumn("套餐总人数", "lib_service", 20));
  465. myColumns3.add(new ExcelColumn("开始时间", "sign_time", 20));
  466. myColumns3.add(new ExcelColumn("结束时间", "end_sign_time", 20));
  467. myColumns3.add(new ExcelColumn("是否服务", "status", 20));
  468. myColumns3.add(new ExcelColumn("添加时间", "create_time", 20));
  469. myColumns3.add(new ExcelColumn("备注", "remarks", 20));
  470. CustomizeToExcel.downFile(myColumns3, objectToPartsMap(list), os);
  471. }catch (IOException e) {
  472. e.printStackTrace();
  473. }catch (Exception e1){
  474. e1.printStackTrace();
  475. }finally{
  476. if(os != null){
  477. try {
  478. os.flush();
  479. os.close();
  480. } catch (IOException e) {
  481. e.printStackTrace();
  482. }
  483. }
  484. }
  485. }
  486. @RequestMapping("/partsAllList")
  487. public String partsAllList(Model model,
  488. @RequestParam(required = false, defaultValue = "100") int pageSize,
  489. @RequestParam(required = false, defaultValue = "1") int pageNo)throws Exception {
  490. Map<String, Object> params = new HashMap<String, Object>();
  491. params.put("LIKE_name", request.getParameter("name")==null?"":request.getParameter("name"));
  492. //params.put("EQ_emsNumber", request.getParameter("emsNumber")==null?"":request.getParameter("emsNumber"));
  493. params.put("LIKE_remarks", request.getParameter("remarks")==null?"":request.getParameter("remarks"));
  494. SplitPage sp = new SplitPage();
  495. sp.setAction(request.getRequestURI());
  496. sp.setPageNo(pageNo);
  497. sp.setPageSize(pageSize);
  498. sp.setParams(params);
  499. Page<DeviceParts> page = devicePartsService.findDevicePartsByPage(params, initPage(pageNo, pageSize, Direction.DESC, new String[]{"createTime"}));
  500. sp.setRowCnt((int) page.getTotalElements());
  501. model.addAttribute("list", page.getContent());
  502. model.addAttribute("listNavigatHtml", sp.getSysPaginHtml());
  503. model.addAttribute("page", sp);
  504. model.addAttribute("search", params);
  505. List<Merchant> list=merchantService.findMerchantByPage();
  506. model.addAttribute("poslist", list);
  507. return "sys/fx/partsAllList";
  508. }
  509. @RequestMapping("/partsList")
  510. public String partsList(Model model,
  511. @RequestParam(required = false, defaultValue = "100") int pageSize,
  512. @RequestParam(required = false, defaultValue = "1") int pageNo)throws Exception {
  513. Map<String, Object> params = new HashMap<String, Object>();
  514. HttpSession session = request.getSession();
  515. Admin admin =(Admin) session.getAttribute("admin");
  516. Merchant merchant=merchantService.getMerchantByPosCode(admin.getLoginName());
  517. params.put("LIKE_name", request.getParameter("name")==null?"":request.getParameter("name"));
  518. //params.put("EQ_emsNumber", request.getParameter("emsNumber")==null?"":request.getParameter("emsNumber"));
  519. params.put("LIKE_remarks", request.getParameter("remarks")==null?"":request.getParameter("remarks"));
  520. if(StringUtils.isNotEmpty(request.getParameter("orgCode"))){
  521. params.put("EQ_orgCode", request.getParameter("orgCode"));
  522. }else{
  523. if("SSJ-FX".equals(merchant.getOrgCode())){
  524. params.put("LIKE_orgCode",merchant.getOrgCode());
  525. }else{
  526. List<String> orgCodes=new ArrayList<String>();
  527. orgCodes.add(merchant.getOrgCode());
  528. List<Merchant> merchants=merchantService.getMerchantByParentPosCode(merchant.getPosCode());
  529. for (Merchant merchant2 : merchants) {
  530. orgCodes.add(merchant2.getOrgCode());
  531. }
  532. params.put("IN_orgCode",orgCodes);
  533. }
  534. }
  535. SplitPage sp = new SplitPage();
  536. sp.setAction(request.getRequestURI());
  537. sp.setPageNo(pageNo);
  538. sp.setPageSize(pageSize);
  539. sp.setParams(params);
  540. Page<DeviceParts> page = devicePartsService.findDevicePartsByPage(params, initPage(pageNo, pageSize, Direction.DESC, new String[]{"createTime"}));
  541. sp.setRowCnt((int) page.getTotalElements());
  542. List<DeviceParts> orderList=new ArrayList<DeviceParts>();
  543. List<DeviceParts> devicePartsList= page.getContent();
  544. for (DeviceParts deviceParts : devicePartsList) {
  545. if(deviceParts.getOrgCode().equals(merchant.getOrgCode())){
  546. orderList.add(0, deviceParts);
  547. }else{
  548. orderList.add(deviceParts);
  549. }
  550. }
  551. model.addAttribute("list", orderList);
  552. model.addAttribute("listNavigatHtml", sp.getSysPaginHtml());
  553. model.addAttribute("page", sp);
  554. model.addAttribute("search", params);
  555. List<Merchant> list=new ArrayList<Merchant>();
  556. if("SSJ-FX".equals(merchant.getOrgCode())){
  557. list=merchantService.getMerchantByLikeOrgCode(merchant.getOrgCode());
  558. }else{
  559. list=merchantService.getMerchantByParentPosCode(merchant.getPosCode());
  560. list.add(merchant);
  561. }
  562. model.addAttribute("poslist", list);
  563. model.addAttribute("merchant", merchant);
  564. return "sys/fx/partsList";
  565. }
  566. @RequestMapping("/deviceAdd")
  567. public String deviceAdd(Model model){
  568. Device device=new Device();
  569. List<Merchant> list=merchantService.findMerchantByPage();
  570. model.addAttribute("poslist", list);
  571. model.addAttribute("device", device);
  572. return "sys/fx/deviceAdd";
  573. }
  574. @RequestMapping("/partsAdd")
  575. public String partsAdd(Model model){
  576. Device device=new Device();
  577. List<Merchant> list=merchantService.findMerchantByPage();
  578. model.addAttribute("poslist", list);
  579. model.addAttribute("device", device);
  580. return "sys/fx/partsAdd";
  581. }
  582. @RequestMapping("/saveDeviceParts")
  583. @ResponseBody
  584. public Response saveDeviceParts(Model model,DeviceParts deviceParts)throws Exception {
  585. Response response = new Response();
  586. deviceParts.setCreateTime(new Date());
  587. deviceParts.setSellNum(0);
  588. deviceParts.setReturnWaitNum(0);
  589. deviceParts=devicePartsService.save(deviceParts);
  590. deviceParts.setPartsId(deviceParts.getId());
  591. devicePartsService.save(deviceParts);
  592. response.success("成功");
  593. return response;
  594. }
  595. @RequestMapping("/deviceEdit")
  596. public String deviceEdit(Model model,String id)
  597. throws Exception {
  598. Device device=new Device();
  599. if(StringUtils.isNotEmpty(id)){
  600. device=deviceService.getById(id);
  601. }
  602. List<Merchant> list=merchantService.findMerchantByPage();
  603. model.addAttribute("poslist", list);
  604. model.addAttribute("device", device);
  605. return "sys/fx/deviceEdit";
  606. }
  607. @RequestMapping("/merchantAdd")
  608. public String merchantAdd(Model model,String id)throws Exception {
  609. HttpSession session = request.getSession();
  610. Admin admin =(Admin) session.getAttribute("admin");
  611. Merchant curMerchant=merchantService.getMerchantByPosCode(admin.getLoginName());
  612. Merchant merchant=new Merchant();
  613. List<PositionSchoolV1Dto> positionSchoolV1Dtos=new ArrayList<PositionSchoolV1Dto>();
  614. String schoolText="";
  615. if(StringUtils.isNotEmpty(id)){
  616. merchant=merchantService.getById(id);
  617. if(merchant!=null && StringUtils.isNotEmpty(merchant.getLibId())) {
  618. positionSchoolV1Dtos= merchantAreaService.findSchoolList(merchant.getLibId());
  619. if(positionSchoolV1Dtos!=null) {
  620. for (PositionSchoolV1Dto positionSchoolV1Dto : positionSchoolV1Dtos) {
  621. schoolText=schoolText+positionSchoolV1Dto.getSchoolName()+";";
  622. }
  623. if(schoolText.endsWith(";")) {
  624. schoolText=schoolText.substring(0, schoolText.length()-1);
  625. }
  626. }
  627. }
  628. }
  629. List<Merchant> list=merchantService.findMerchantByPage();
  630. List<CnArea> areaList = cnAreaService.findByTypeList("1");
  631. model.addAttribute("areaList", areaList);
  632. List<TbLibJoin> joinList=libJoinService.findAll();
  633. model.addAttribute("positionSchoolV1Dtos", positionSchoolV1Dtos);
  634. model.addAttribute("schoolText", schoolText);
  635. model.addAttribute("joinList", joinList);
  636. model.addAttribute("poslist", list);
  637. model.addAttribute("merchant", merchant);
  638. model.addAttribute("minDate", merchant.getSignTime()!=null ? merchant.getSignTime() : new Date());
  639. model.addAttribute("curMerchant", curMerchant);
  640. return "sys/fx/merchantAdd";
  641. }
  642. @RequestMapping("/merchantAdd_sc")
  643. public String merchantAddSchool(Model model,String id)throws Exception {
  644. HttpSession session = request.getSession();
  645. Admin admin =(Admin) session.getAttribute("admin");
  646. Merchant curMerchant=merchantService.getMerchantByPosCode(admin.getLoginName());
  647. Merchant merchant=new Merchant();
  648. List<PositionSchoolV1Dto> positionSchoolV1Dtos=new ArrayList<PositionSchoolV1Dto>();
  649. String schoolText="";
  650. if(StringUtils.isNotEmpty(id)){
  651. merchant=merchantService.getById(id);
  652. if(merchant!=null && StringUtils.isNotEmpty(merchant.getLibId())) {
  653. positionSchoolV1Dtos= merchantAreaService.findSchoolList(merchant.getLibId());
  654. if(positionSchoolV1Dtos!=null) {
  655. for (PositionSchoolV1Dto positionSchoolV1Dto : positionSchoolV1Dtos) {
  656. schoolText=schoolText+positionSchoolV1Dto.getSchoolName()+";";
  657. }
  658. if(schoolText.endsWith(";")) {
  659. schoolText=schoolText.substring(0, schoolText.length()-1);
  660. }
  661. }
  662. }
  663. }
  664. List<Merchant> list=merchantService.findMerchantByPage();
  665. List<CnArea> areaList = cnAreaService.findByTypeList("1");
  666. model.addAttribute("areaList", areaList);
  667. List<TbLibJoin> joinList=libJoinService.findAll();
  668. model.addAttribute("positionSchoolV1Dtos", positionSchoolV1Dtos);
  669. model.addAttribute("schoolText", schoolText);
  670. model.addAttribute("joinList", joinList);
  671. model.addAttribute("poslist", list);
  672. model.addAttribute("merchant", merchant);
  673. model.addAttribute("minDate", merchant.getSignTime()!=null ? merchant.getSignTime() : new Date());
  674. model.addAttribute("curMerchant", curMerchant);
  675. return "sys/fx/merchantAdd_sc";
  676. }
  677. @RequestMapping("/merchantInfo")
  678. public String merchantInfo(Model model,String id)throws Exception {
  679. HttpSession session = request.getSession();
  680. Admin admin =(Admin) session.getAttribute("admin");
  681. Merchant curMerchant=merchantService.getMerchantByPosCode(admin.getLoginName());
  682. Merchant merchant=new Merchant();
  683. List<PositionSchoolV1Dto> positionSchoolV1Dtos=new ArrayList<PositionSchoolV1Dto>();
  684. String schoolText="";
  685. if(StringUtils.isNotEmpty(id)){
  686. merchant=merchantService.getById(id);
  687. if(merchant!=null && StringUtils.isNotEmpty(merchant.getLibId())) {
  688. positionSchoolV1Dtos= merchantAreaService.findSchoolList(merchant.getLibId());
  689. if(positionSchoolV1Dtos!=null) {
  690. for (PositionSchoolV1Dto positionSchoolV1Dto : positionSchoolV1Dtos) {
  691. schoolText=schoolText+positionSchoolV1Dto.getSchoolName()+";";
  692. }
  693. if(schoolText.endsWith(";")) {
  694. schoolText=schoolText.substring(0, schoolText.length()-1);
  695. }
  696. }
  697. }
  698. }
  699. List<Merchant> list=merchantService.findMerchantByPage();
  700. List<CnArea> areaList = cnAreaService.findByTypeList("1");
  701. model.addAttribute("areaList", areaList);
  702. List<TbLibJoin> joinList=libJoinService.findAll();
  703. model.addAttribute("positionSchoolV1Dtos", positionSchoolV1Dtos);
  704. model.addAttribute("schoolText", schoolText);
  705. model.addAttribute("joinList", joinList);
  706. model.addAttribute("poslist", list);
  707. model.addAttribute("merchant", merchant);
  708. model.addAttribute("curMerchant", curMerchant);
  709. return "sys/fx/merchantInfo";
  710. }
  711. @RequestMapping("/merchantBackupInfo")
  712. public String merchantBackupInfo(Model model,String id)throws Exception {
  713. HttpSession session = request.getSession();
  714. Admin admin =(Admin) session.getAttribute("admin");
  715. Merchant curMerchant=merchantService.getMerchantByPosCode(admin.getLoginName());
  716. MerchantBackup merchant=new MerchantBackup();
  717. List<PositionSchoolV1Dto> positionSchoolV1Dtos=new ArrayList<PositionSchoolV1Dto>();
  718. String schoolText="";
  719. if(StringUtils.isNotEmpty(id)){
  720. merchant=merchantBackupService.getById(id);
  721. if(merchant!=null && StringUtils.isNotEmpty(merchant.getLibId())) {
  722. positionSchoolV1Dtos= merchantAreaService.findSchoolList(merchant.getLibId());
  723. if(positionSchoolV1Dtos!=null) {
  724. for (PositionSchoolV1Dto positionSchoolV1Dto : positionSchoolV1Dtos) {
  725. schoolText=schoolText+positionSchoolV1Dto.getSchoolName()+";";
  726. }
  727. if(schoolText.endsWith(";")) {
  728. schoolText=schoolText.substring(0, schoolText.length()-1);
  729. }
  730. }
  731. }
  732. }
  733. List<Merchant> list=merchantService.findMerchantByPage();
  734. List<CnArea> areaList = cnAreaService.findByTypeList("1");
  735. model.addAttribute("areaList", areaList);
  736. List<TbLibJoin> joinList=libJoinService.findAll();
  737. model.addAttribute("positionSchoolV1Dtos", positionSchoolV1Dtos);
  738. model.addAttribute("schoolText", schoolText);
  739. model.addAttribute("joinList", joinList);
  740. model.addAttribute("poslist", list);
  741. model.addAttribute("merchant", merchant);
  742. model.addAttribute("curMerchant", curMerchant);
  743. return "sys/fx/merchantBackupInfo";
  744. }
  745. @RequestMapping("/merchantAllot")
  746. public String merchantAllot(Model model,String id)throws Exception {
  747. Merchant merchant=new Merchant();
  748. List<Merchant> subMerchants=new ArrayList<Merchant>();
  749. if(StringUtils.isNotEmpty(id)){
  750. merchant=merchantService.getById(id);
  751. subMerchants=merchantService.getMerchantByParentPosCode(merchant.getPosCode());
  752. }
  753. model.addAttribute("merchant", merchant);
  754. model.addAttribute("subMerchants", subMerchants);
  755. return "sys/fx/merchantAllot";
  756. }
  757. //批量分配设备商户下
  758. @RequestMapping("/allot")
  759. @ResponseBody
  760. public Response allot(Model model,String fromMerchant,String toMerchant,Integer num,Integer type)throws Exception {
  761. Response response = new Response();
  762. if(StringUtils.isNotEmpty(toMerchant)){
  763. merchantService.allotByMerchant(fromMerchant, toMerchant, num,type);
  764. response.success("成功");
  765. }else{
  766. response.failure("toMerchant不合法");
  767. }
  768. return response;
  769. }
  770. //批量分配设备商户下
  771. @RequestMapping("/areaList")
  772. @ResponseBody
  773. public Response areaList(Model model,String type,String upId)throws Exception {
  774. Response response = new Response();
  775. if(StringUtils.isNotEmpty(type)){
  776. List<CnArea> areaList =new ArrayList<CnArea>();
  777. if(StringUtils.isNotEmpty(upId)) {
  778. areaList = cnAreaService.findByTypeList(type,upId);
  779. }else {
  780. areaList = cnAreaService.findByTypeList(type);
  781. }
  782. response.success(areaList, "成功");
  783. }else{
  784. response.failure("type不合法");
  785. }
  786. return response;
  787. }
  788. //批量分配设备商户下
  789. @RequestMapping("/matchDevice")
  790. @ResponseBody
  791. public Response deviceList(Model model,String ids,String poscode,
  792. String emsNumber,String emsAddress,String emsUsername,String emsTelephone,String emsImg,String remarks)throws Exception {
  793. Response response = new Response();
  794. HttpSession session = request.getSession();
  795. Admin admin =(Admin) session.getAttribute("admin");
  796. if(StringUtils.isNotEmpty(ids)){
  797. String[] ais=ids.split(";");
  798. List<String> list = Arrays.asList(ais);
  799. int isNum=deviceService.matchDeviceByMerchant(list, poscode,admin ,
  800. emsNumber, emsAddress, emsUsername, emsTelephone,emsImg,remarks);
  801. response.success(isNum, "成功");
  802. }else{
  803. response.failure("请选择imeis号");
  804. }
  805. return response;
  806. }
  807. @RequestMapping("/matchParts")
  808. @ResponseBody
  809. public Response matchparts(Model model,String id,Integer matchNum,String posCode,
  810. String emsNumber,String emsAddress,String emsUsername,String emsTelephone)throws Exception {
  811. Response response = new Response();
  812. HttpSession session = request.getSession();
  813. Admin admin =(Admin) session.getAttribute("admin");
  814. if(StringUtils.isNotEmpty(id)){
  815. devicePartsService.matchDevicePartsByMerchant(id,
  816. matchNum, posCode,
  817. emsNumber, emsAddress, emsUsername, emsTelephone, admin);
  818. response.success("成功");
  819. }else{
  820. response.failure("请选择分配配件");
  821. }
  822. return response;
  823. }
  824. @RequestMapping("/addParts")
  825. @ResponseBody
  826. public Response addParts(Model model,String id,Integer matchNum,
  827. String emsNumber,String emsAddress,String emsUsername,String emsTelephone)throws Exception {
  828. Response response = new Response();
  829. HttpSession session = request.getSession();
  830. Admin admin =(Admin) session.getAttribute("admin");
  831. if(StringUtils.isNotEmpty(id)){
  832. DeviceParts fromDeviceParts=devicePartsService.getById(id);
  833. if(fromDeviceParts!=null){
  834. Merchant merchant=merchantService.getMerchantByPosCode(fromDeviceParts.getPosCode());
  835. fromDeviceParts.setSellWaitNum(fromDeviceParts.getSellWaitNum()+matchNum);
  836. devicePartsService.save(fromDeviceParts);
  837. DevicePartsAct devicePartsAct=new DevicePartsAct();
  838. devicePartsAct.setEmsAddress(emsAddress);
  839. devicePartsAct.setEmsNumber(emsNumber);
  840. devicePartsAct.setEmsTelephone(emsTelephone);
  841. devicePartsAct.setEmsUsername(emsUsername);
  842. devicePartsAct.setMatchNum(matchNum);
  843. devicePartsAct.setFromMerchantId(null);
  844. devicePartsAct.setOperatorAdminId(admin.getId());
  845. devicePartsAct.setRemarks("上行增库");
  846. devicePartsAct.setToMerchantId(merchant.getId());
  847. devicePartsAct.setType(1);
  848. devicePartsActService.save(devicePartsAct);
  849. }
  850. response.success("成功");
  851. }else{
  852. response.failure("请选择增库配件");
  853. }
  854. return response;
  855. }
  856. @RequestMapping("/cutParts")
  857. @ResponseBody
  858. public Response cutParts(Model model,String id,Integer matchNum,
  859. String emsNumber,String emsAddress,String emsUsername,String emsTelephone)throws Exception {
  860. Response response = new Response();
  861. HttpSession session = request.getSession();
  862. Admin admin =(Admin) session.getAttribute("admin");
  863. if(StringUtils.isNotEmpty(id)){
  864. DeviceParts fromDeviceParts=devicePartsService.getById(id);
  865. if(fromDeviceParts!=null){
  866. if(fromDeviceParts.getSellNum()>=matchNum){
  867. fromDeviceParts.setSellNum(fromDeviceParts.getSellNum()+matchNum);
  868. devicePartsService.save(fromDeviceParts);
  869. DevicePartsAct devicePartsAct=new DevicePartsAct();
  870. devicePartsAct.setEmsAddress(emsAddress);
  871. devicePartsAct.setEmsNumber(emsNumber);
  872. devicePartsAct.setEmsTelephone(emsTelephone);
  873. devicePartsAct.setEmsUsername(emsUsername);
  874. devicePartsAct.setMatchNum(matchNum);
  875. devicePartsAct.setFromMerchantId(fromDeviceParts.getPosCode());
  876. devicePartsAct.setOperatorAdminId(admin.getId());
  877. devicePartsAct.setRemarks("上行减库");
  878. devicePartsAct.setToMerchantId(null);
  879. devicePartsAct.setType(2);
  880. devicePartsActService.save(devicePartsAct);
  881. }else{
  882. response.failure("请减库数量不能超过已收货的数量");
  883. }
  884. }
  885. response.success("成功");
  886. }else{
  887. response.failure("请选择减库配件");
  888. }
  889. return response;
  890. }
  891. @RequestMapping("/updateDevice")
  892. @ResponseBody
  893. public Response updateDevice(Model model,String id,Integer status,
  894. String emsImg,String emsNumber,String emsAddress,String emsTelephone,String emsUsername,String remarks)throws Exception {
  895. Response response = new Response();
  896. Map<String,Object> data=new HashMap<String, Object>();
  897. HttpSession session = request.getSession();
  898. Admin admin =(Admin) session.getAttribute("admin");
  899. String batchCode=DateHelper.format(new Date(), "yyyyMMddHHmmssSS");
  900. int countNum=0;
  901. int successNum=0;
  902. if(StringUtils.isNotEmpty(id)){
  903. String[] ids=id.split(";");
  904. countNum=ids.length;
  905. for (String i : ids) {
  906. try {
  907. Device device=deviceService.getById(i);
  908. device.setStatus(status);
  909. if(device.getStatus()==1 && status==2){
  910. // PosterTemplate merchant=merchantService.getById(device.getMerchantId());
  911. // if(merchant!=null && StringUtils.isNotEmpty(merchant.getParentPosCode())){
  912. // PosterTemplate pmerchant=merchantService.getMerchantByPosCode(merchant.getParentPosCode());
  913. // DeviceAct deviceAct=new DeviceAct();
  914. // deviceAct.setFromMerchantId(pmerchant.getId());
  915. // deviceAct.setToMerchantId(device.getMerchantId());
  916. // deviceAct.setOperatorAdminId(admin.getId());
  917. // deviceAct.setDeviceId(device.getId());
  918. // deviceAct.setImei(device.getImei());
  919. // deviceAct.setIsUsed(device.getIsSpan());
  920. // deviceAct.setCreateTime(new Date());
  921. // deviceAct.setEmsNumber(emsNumber);
  922. // deviceAct.setEmsAddress(emsAddress);
  923. // deviceAct.setEmsTelephone(emsTelephone);
  924. // deviceAct.setEmsUsername(emsUsername);
  925. // deviceAct.setRemarks("设备入库:"+remarks);
  926. // deviceAct.setBatchCode(batchCode);
  927. // deviceAct.setType(3);
  928. // deviceActService.save(deviceAct);
  929. // }
  930. }
  931. //这些是针对上行的一个状态
  932. if(device.getStatus()==4 && status==1){
  933. device.setStatus(3);
  934. }
  935. if(device.getStatus()==3 && status==2){
  936. device.setStatus(4);
  937. }
  938. if(StringUtils.isNotEmpty(emsImg)){
  939. device.setEmsImg(device.getEmsImg()+";"+emsImg);
  940. }
  941. device.setUpdateTime(new Date());
  942. deviceService.save(device);
  943. successNum=successNum+1;
  944. deviceService.pushDeviceToAijia(device);
  945. } catch (Exception e) {
  946. }
  947. }
  948. data.put("countNum", countNum);
  949. data.put("successNum", successNum);
  950. response.success(data,"成功");
  951. }else{
  952. response.failure("请选择id");
  953. }
  954. return response;
  955. }
  956. /**
  957. *
  958. * @param model
  959. * @param id
  960. * @param type 1 确认收货 2确认收货(退回)
  961. * @return
  962. * @throws Exception
  963. */
  964. @RequestMapping("/updateDeviceParts")
  965. @ResponseBody
  966. public Response updateDeviceParts(Model model,String id,Integer type)throws Exception {
  967. Response response = new Response();
  968. if(StringUtils.isNotEmpty(id)){
  969. devicePartsService.updateDevicePartsNum(id, type);
  970. response.success("成功");
  971. }else{
  972. response.failure("请选择配件");
  973. }
  974. return response;
  975. }
  976. @RequestMapping("/returnDevice")
  977. @ResponseBody
  978. public Response returnDevice(Model model,String id,Integer status,
  979. String emsNumber,String emsAddress,String emsTelephone,String emsUsername,String remarks)throws Exception {
  980. Response response = new Response();
  981. Map<String,Object> data=new HashMap<String, Object>();
  982. HttpSession session = request.getSession();
  983. Admin admin =(Admin) session.getAttribute("admin");
  984. int countNum=0;
  985. int successNum=0;
  986. String batchCode=DateHelper.format(new Date(), "yyyyMMddHHmmssSS");
  987. if(StringUtils.isNotEmpty(id)){
  988. String[] ids=id.split(";");
  989. countNum=ids.length;
  990. for (String i : ids) {
  991. try {
  992. Device device=deviceService.getById(i);
  993. if(3==status){
  994. Merchant merchant=merchantService.getById(device.getMerchantId());
  995. if(merchant!=null && StringUtils.isNotEmpty(merchant.getParentPosCode())){
  996. Merchant pmerchant=merchantService.getMerchantByPosCode(merchant.getParentPosCode());
  997. DeviceAct deviceAct=new DeviceAct();
  998. deviceAct.setFromMerchantId(device.getMerchantId());
  999. deviceAct.setToMerchantId(pmerchant.getId());
  1000. deviceAct.setOperatorAdminId(admin.getId());
  1001. deviceAct.setDeviceId(device.getId());
  1002. deviceAct.setImei(device.getImei());
  1003. deviceAct.setIsUsed(1);
  1004. deviceAct.setCreateTime(new Date());
  1005. deviceAct.setEmsNumber(emsNumber);
  1006. deviceAct.setEmsAddress(emsAddress);
  1007. deviceAct.setEmsTelephone(emsTelephone);
  1008. deviceAct.setEmsUsername(emsUsername);
  1009. deviceAct.setRemarks("设备出库:退回上级【"+remarks+"】");
  1010. deviceAct.setBatchCode(batchCode);
  1011. deviceAct.setType(2);
  1012. deviceActService.save(deviceAct);
  1013. device.setIsUsed(1);//标识为二手
  1014. deviceAct=new DeviceAct();
  1015. deviceAct.setFromMerchantId(device.getMerchantId());
  1016. deviceAct.setToMerchantId(pmerchant.getId());
  1017. deviceAct.setOperatorAdminId(admin.getId());
  1018. deviceAct.setDeviceId(device.getId());
  1019. deviceAct.setImei(device.getImei());
  1020. deviceAct.setIsUsed(1);
  1021. deviceAct.setCreateTime(new Date());
  1022. deviceAct.setEmsNumber(emsNumber);
  1023. deviceAct.setEmsAddress(emsAddress);
  1024. deviceAct.setEmsTelephone(emsTelephone);
  1025. deviceAct.setEmsUsername(emsUsername);
  1026. deviceAct.setRemarks("设备入库:退回入库【"+remarks+"】");
  1027. deviceAct.setBatchCode(batchCode);
  1028. deviceAct.setType(4);
  1029. deviceActService.save(deviceAct);
  1030. device.setIsUsed(1);//标识为二手
  1031. device.setDeviceAct(deviceAct);
  1032. device.setLastMerchantId(device.getMerchantId());
  1033. device.setMerchantId(pmerchant.getId());
  1034. device.setPosCode(pmerchant.getPosCode());
  1035. device.setOrgCode(pmerchant.getOrgCode());
  1036. device.setUpdateTime(new Date());
  1037. device.setStatus(status);
  1038. deviceService.save(device);
  1039. }
  1040. }else {
  1041. device.setUpdateTime(new Date());
  1042. device.setStatus(status);
  1043. deviceService.save(device);
  1044. }
  1045. successNum=successNum+1;
  1046. } catch (Exception e) {
  1047. }
  1048. }
  1049. data.put("countNum", countNum);
  1050. data.put("successNum", successNum);
  1051. response.success(data,"成功");
  1052. }else{
  1053. response.failure("请选择id");
  1054. }
  1055. return response;
  1056. }
  1057. @RequestMapping("/returnParts")
  1058. @ResponseBody
  1059. public Response returnParts(Model model,String id,Integer matchNum,String posCode,
  1060. String emsNumber,String emsAddress,String emsUsername,String emsTelephone)throws Exception {
  1061. Response response = new Response();
  1062. HttpSession session = request.getSession();
  1063. Admin admin =(Admin) session.getAttribute("admin");
  1064. if(StringUtils.isNotEmpty(id)){
  1065. devicePartsService.returnDevicePartsByMerchant(id, matchNum, emsNumber, emsAddress, emsUsername, emsTelephone, admin);
  1066. response.success("成功");
  1067. }else{
  1068. response.failure("请选择id");
  1069. }
  1070. return response;
  1071. }
  1072. @RequestMapping(value="/getMerchant/{id}")
  1073. @ResponseBody
  1074. public Response libIdjoin(Model model,@PathVariable String id) {
  1075. Response response = new Response();
  1076. Map<String,Object> data=new LinkedHashMap<String, Object>();
  1077. Merchant merchant=merchantService.getById(id);
  1078. boolean isPortNum=true;
  1079. HttpSession session = request.getSession();
  1080. Admin admin =(Admin) session.getAttribute("admin");
  1081. Merchant curMerchant=merchantService.getMerchantByPosCode(admin.getLoginName());
  1082. if(merchant.getOrgCode().equals(curMerchant.getOrgCode())) {
  1083. //response.failure("不可设置自己的商户端口");
  1084. isPortNum=false;
  1085. }
  1086. if(!"SSJ-FX".equals(curMerchant.getOrgCode()) && !merchant.getParentPosCode().equals(curMerchant.getPosCode())) {
  1087. //response.failure("不可设置非子级的商户端口");
  1088. isPortNum=false;
  1089. }
  1090. data.put("merchant", merchant);
  1091. data.put("isPortNum", isPortNum);
  1092. response.success(data, "查询成功");
  1093. return response;
  1094. }
  1095. @RequestMapping(value="/merchant/update/{id}")
  1096. @ResponseBody
  1097. public Response libIdjoin(Model model,@PathVariable String id,Integer type,Integer num) {
  1098. Response response = new Response();
  1099. HttpSession session = request.getSession();
  1100. Admin admin =(Admin) session.getAttribute("admin");
  1101. if(num<=0) {
  1102. response.failure("设置的数量不能少于1");
  1103. return response;
  1104. }
  1105. Merchant merchant=merchantService.getById(id);
  1106. if(merchant!=null) {
  1107. if(type==1) {
  1108. merchant.setLibService(merchant.getLibService()+num);
  1109. if(merchant.getCurIsSummary()!=null && merchant.getCurIsSummary()>=0) {
  1110. Integer incrementNum=merchant.getCurIsSummary()-num;
  1111. merchant.setCurIsSummary(incrementNum<0?0:incrementNum);
  1112. }
  1113. merchantService.save(merchant);
  1114. //记录通过商户添加币
  1115. libJoinConsumeService.rechargeMerchantConsume(id, num, 0);
  1116. }else if(type==3) {
  1117. merchant.setPlatformService(merchant.getPlatformService()+num);
  1118. merchantService.save(merchant);
  1119. //记录通过商户添加币
  1120. libJoinConsumeService.rechargeMerchantConsume(id, 0 , num);
  1121. }else if(type==2) {
  1122. Merchant curMerchant=merchantService.getMerchantByPosCode(admin.getLoginName());
  1123. if("SSJ-FX".equals(curMerchant.getOrgCode())) {
  1124. merchant.setPortNum(merchant.getPortNum()+num);
  1125. if(merchant.getPortNum()<10) {
  1126. response.failure("设置的端口总量不能少于10");
  1127. return response;
  1128. }
  1129. merchantService.save(merchant);
  1130. }else {
  1131. // if(merchant.getOrgCode().equals(curMerchant.getOrgCode())) {
  1132. // response.failure("不可设置自己的商户端口");
  1133. // return response;
  1134. // }
  1135. if(!"SSJ-FX".equals(curMerchant.getOrgCode()) && !merchant.getParentPosCode().equals(curMerchant.getPosCode())) {
  1136. response.failure("不可设置非子级的商户端口");
  1137. return response;
  1138. }
  1139. Integer countPortNum=0;
  1140. List<Merchant> subMerchants=merchantService.getMerchantByParentPosCode(curMerchant.getPosCode());
  1141. for (Merchant merchant2 : subMerchants) {
  1142. countPortNum=countPortNum+(merchant2.getPortNum()!=null?merchant2.getPortNum():0);
  1143. }
  1144. if(countPortNum+num > curMerchant.getPortNum()) {
  1145. response.failure("您端口数量:"+curMerchant.getPortNum()+ " 已设置子级端口数量:"+countPortNum+" 设置的端口子级总量不能大于您的端口数量");
  1146. return response;
  1147. }
  1148. merchant.setPortNum(merchant.getPortNum()+num);
  1149. merchantService.save(merchant);
  1150. }
  1151. }
  1152. merchantService.syncRecordByMerchant(admin.getLoginName(), id,WebUtil.getRemoteAddr(request), "更新塾币/端口");
  1153. }
  1154. response.success("查询成功");
  1155. return response;
  1156. }
  1157. @RequestMapping(value="/merchant/updateMeal/{id}")
  1158. @ResponseBody
  1159. public Response updateMeal(Model model,@PathVariable String id,Integer num,Integer type) {
  1160. Response response = new Response();
  1161. if(num<=0) {
  1162. response.failure("添加的加油包不能少于1");
  1163. return response;
  1164. }
  1165. Merchant merchant=merchantService.getById(id);
  1166. if(merchant!=null) {
  1167. merchantSignService.insertMerchantSignAndSync(id, type, num);
  1168. }
  1169. response.success("操作成功");
  1170. return response;
  1171. }
  1172. @RequestMapping("/updateMerchant")
  1173. @ResponseBody
  1174. public Response updateMerchant(Model model,String id,Integer status)throws Exception {
  1175. Response response = new Response();
  1176. HttpSession session = request.getSession();
  1177. Admin admin =(Admin) session.getAttribute("admin");
  1178. if(StringUtils.isNotEmpty(id)){
  1179. Merchant merchant=merchantService.getById(id);
  1180. merchant.setStatus(status);
  1181. merchantService.save(merchant);
  1182. merchantService.syncRecordByMerchant(admin.getLoginName(), id,WebUtil.getRemoteAddr(request), "更新商户状态");
  1183. response.success("成功");
  1184. }else{
  1185. response.failure("请选择id");
  1186. }
  1187. return response;
  1188. }
  1189. @RequestMapping("/saveDevice")
  1190. @ResponseBody
  1191. public Response saveDevice(Model model,Device device)throws Exception {
  1192. HttpSession session = request.getSession();
  1193. Admin admin =(Admin) session.getAttribute("admin");
  1194. Response response = new Response();
  1195. if(StringUtils.isNotEmpty(device.getId())){
  1196. Device olddevice =deviceService.getById(device.getId());
  1197. olddevice.setDeviceCode(device.getDeviceCode());
  1198. olddevice.setDeviceColor(device.getDeviceColor());
  1199. olddevice.setDeviceModel(device.getDeviceModel());
  1200. olddevice.setDeviceName(device.getDeviceName());
  1201. olddevice.setDeviceNumber(device.getDeviceNumber());
  1202. olddevice.setDeviceSn(device.getDeviceSn());
  1203. olddevice.setImei(device.getImei());
  1204. olddevice.setUpdateTime(new Date());
  1205. olddevice.setBatchCode(device.getBatchCode());
  1206. olddevice.setPrice(device.getPrice());
  1207. olddevice.setEmsAddress(device.getEmsAddress());
  1208. olddevice.setEmsNumber(device.getEmsNumber());
  1209. olddevice.setEmsTelephone(device.getEmsTelephone());
  1210. olddevice.setEmsUsername(device.getEmsUsername());
  1211. olddevice.setRemarks(device.getRemarks());
  1212. olddevice.setType(device.getType());
  1213. deviceService.save(olddevice);
  1214. }else{
  1215. String batchCode=StringUtils.isNotEmpty(device.getEmsNumber())? device.getEmsNumber():DateHelper.format(new Date(), "yyyyMMddHHmmssSS");
  1216. if(device.getType()==null){
  1217. device.setType(1);
  1218. }
  1219. device.setIsSpan(1);
  1220. device.setCreateTime(new Date());
  1221. device.setId(IdWorker.generateId());
  1222. deviceService.save(device);
  1223. /* DeviceAct deviceAct=new DeviceAct();
  1224. deviceAct.setFromMerchantId(null);
  1225. deviceAct.setToMerchantId(device.getMerchantId());
  1226. deviceAct.setOperatorAdminId(admin.getId());
  1227. deviceAct.setImei(device.getImei());
  1228. deviceAct.setCreateTime(new Date());
  1229. deviceAct.setType(1);
  1230. deviceAct.setEmsNumber(device.getEmsNumber());
  1231. deviceAct.setEmsAddress(device.getEmsAddress());
  1232. deviceAct.setEmsTelephone(device.getEmsTelephone());
  1233. deviceAct.setEmsUsername(device.getEmsUsername());
  1234. deviceAct.setBatchCode(batchCode);
  1235. deviceAct.setRemarks("库存分配");
  1236. deviceActService.save(deviceAct);
  1237. ConchDerver conchDerver=conchDerverService.getConchDerverByImei(device.getImei());
  1238. if(conchDerver!=null){
  1239. conchDerver.setLatitude(null);
  1240. conchDerver.setLongitude(null);
  1241. conchDerverService.save(conchDerver);
  1242. }*/
  1243. }
  1244. response.success("成功");
  1245. return response;
  1246. }
  1247. @RequestMapping("/checkMerchant")
  1248. @ResponseBody
  1249. public Response checkMerchant(Model model,String name)throws Exception {
  1250. Response response = new Response();
  1251. if(StringUtils.isNotEmpty(name)){
  1252. Admin admin=adminService.getByLoginName(name);
  1253. if(admin!=null){
  1254. response.failure("账号已存在");
  1255. return response;
  1256. }
  1257. }
  1258. response.success("成功");
  1259. return response;
  1260. }
  1261. @RequestMapping("/saveMerchant")
  1262. @ResponseBody
  1263. public Response saveMerchant(Model model,Merchant merchant,String startTime,String endTime,String startActiveTimeStr,String activeTimeStr,String computeTimeStr
  1264. ,String password,String province,String city,String area,String schoollist,String location)throws Exception {
  1265. Response response = new Response();
  1266. HttpSession session = request.getSession();
  1267. Admin curadmin =(Admin) session.getAttribute("admin");
  1268. //签约模式
  1269. if(merchant.getSignType().equals(0)) {
  1270. return merchantService.saveMerchantByUsed(merchant, startTime, endTime, password, province, city, area, schoollist, location, curadmin);
  1271. }else {
  1272. if(StringUtils.isEmpty(startActiveTimeStr)) {
  1273. response.failure("新模式的开始激活日期不可为空");
  1274. return response;
  1275. }
  1276. if(StringUtils.isEmpty(activeTimeStr)) {
  1277. response.failure("新模式的结束激活日期不可为空");
  1278. return response;
  1279. }
  1280. if(merchant.getLibServiceMonth()==null || merchant.getLibServiceMonth()<=0) {
  1281. response.failure("新模式的充值月份数不可小于0");
  1282. return response;
  1283. }
  1284. return merchantService.saveMerchantByNew(merchant, startTime, endTime,startActiveTimeStr,activeTimeStr, computeTimeStr, password, province, city, area, schoollist, location, curadmin);
  1285. }
  1286. }
  1287. @RequestMapping("/saveMerchant_sc")
  1288. @ResponseBody
  1289. public Response saveMerchantSc(Model model,Merchant merchant,String startTime,String endTime,String activeTimeStr,String endActiveTimeStr
  1290. ,String password,String province,String city,String area,String schoollist,String location)throws Exception {
  1291. Response response = new Response();
  1292. HttpSession session = request.getSession();
  1293. Admin curadmin =(Admin) session.getAttribute("admin");
  1294. //签约模式
  1295. if(merchant.getSignType().equals(0)) {
  1296. return merchantService.saveMerchantByUsed(merchant, startTime, endTime, password, province, city, area, schoollist, location, curadmin);
  1297. }else {
  1298. if(StringUtils.isEmpty(activeTimeStr)) {
  1299. response.failure("试用开始时间不可为空");
  1300. return response;
  1301. }
  1302. if(StringUtils.isEmpty(endActiveTimeStr)) {
  1303. response.failure("试用结束时间不可为空");
  1304. return response;
  1305. }
  1306. return merchantService.saveMerchantByNew_Sc(merchant, startTime, endTime,activeTimeStr, endActiveTimeStr, password, province, city, area, schoollist, location, curadmin);
  1307. }
  1308. }
  1309. @RequestMapping("/merchant/untying")
  1310. @ResponseBody
  1311. public Response saveMerchant(Model model,String id)throws Exception {
  1312. Response response = new Response();
  1313. HttpSession session = request.getSession();
  1314. Admin admin =(Admin) session.getAttribute("admin");
  1315. if(StringUtils.isNotEmpty(id)){
  1316. Merchant merchant =merchantService.getById(id);
  1317. if(merchant!=null) {
  1318. if(StringUtils.isNotEmpty(merchant.getLibId())) {
  1319. TbLibJoin libJoin=libJoinService.getById(merchant.getLibId());
  1320. libJoin.setLibService(0);
  1321. libJoin.setPlatformService(0);
  1322. libJoin.setSignType(0);
  1323. libJoin.setSignTime(null);
  1324. libJoin.setEndSignTime(null);
  1325. libJoinService.save(libJoin);
  1326. }
  1327. merchant.setLibId(null);
  1328. merchantService.save(merchant);
  1329. merchantService.syncRecordByMerchant(admin.getLoginName(), id,WebUtil.getRemoteAddr(request), "解绑机构");
  1330. }
  1331. }
  1332. response.success("成功");
  1333. return response;
  1334. }
  1335. @RequestMapping("/importDeviceData")
  1336. @ResponseBody
  1337. public ResponseEntity importDeviceData(HttpServletRequest request, HttpServletResponse response)throws Exception {
  1338. ResponseEntity responseEntity = new ResponseEntity();
  1339. HttpSession session = request.getSession();
  1340. Admin admin =(Admin) session.getAttribute("admin");
  1341. MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
  1342. Map<String, MultipartFile> fileList = multipartRequest.getFileMap();
  1343. if (fileList != null && fileList.size() > 0) {
  1344. String filepath = "";
  1345. //商户数据
  1346. filepath = PropertiesUtil.getValue("file_save_path")+"/fx/device/";
  1347. //文件信息入库
  1348. List<FileInfo> fileInfos = fileInfoService.uploadFile(loginName(), fileList, filepath);
  1349. if (fileList.size() == fileInfos.size()) {
  1350. Map<String, Object> data = new HashMap<String, Object>();
  1351. data.put("pics", fileInfos);
  1352. //-------------开始解析文件----------------
  1353. List<Device> devices=ExcelUtils.readDeviceFile(new File( PropertiesUtil.getValue("file_save_path")+fileInfos.get(0).getFilePath()));
  1354. String batchCode=DateHelper.format(new Date(), "yyyyMMddHHmmssSS");
  1355. for (Device device : devices) {
  1356. if(StringUtils.isNotEmpty(device.getPosCode())){
  1357. Merchant merchant=merchantService.getMerchantByPosCode(device.getPosCode());
  1358. device.setMerchantId(merchant.getId());
  1359. device.setOrgCode(merchant.getOrgCode());
  1360. device.setStatus(1);
  1361. device.setType(1);
  1362. device.setId(IdWorker.generateId());
  1363. DeviceAct deviceAct=new DeviceAct();
  1364. deviceAct.setFromMerchantId(null);
  1365. deviceAct.setToMerchantId(device.getMerchantId());
  1366. deviceAct.setOperatorAdminId(admin.getId());
  1367. deviceAct.setDeviceId(device.getId());
  1368. deviceAct.setImei(device.getImei());
  1369. deviceAct.setCreateTime(new Date());
  1370. deviceAct.setRemarks("设备入库:导入入库");
  1371. deviceAct.setBatchCode(batchCode);
  1372. deviceAct.setType(3);
  1373. deviceActService.save(deviceAct);
  1374. ConchDerver conchDerver=conchDerverService.getConchDerverByImei(device.getImei());
  1375. if(conchDerver!=null){
  1376. device.setDeviceSn(conchDerver.getSimcard());
  1377. // conchDerver.setLatitude(null);
  1378. // conchDerver.setLongitude(null);
  1379. //conchDerverService.save(conchDerver);
  1380. }
  1381. }
  1382. }
  1383. deviceService.save(devices);
  1384. //-------------结束解析文件----------------
  1385. responseEntity.success(data, "上传文件成功 ");
  1386. } else {
  1387. responseEntity.failure(ResponseConstant.CODE_000, "上传文件失败");
  1388. }
  1389. } else {
  1390. responseEntity.failure(ResponseConstant.CODE_000, "上传文件失败");
  1391. }
  1392. return responseEntity;
  1393. }
  1394. @RequestMapping(value = "/exportDevice", method = RequestMethod.POST)
  1395. @ResponseBody
  1396. public void exportDevice( HttpServletRequest request, HttpServletResponse response) {
  1397. ServletOutputStream os = null;
  1398. try {
  1399. String libName="设备数据";
  1400. os = response.getOutputStream(); //获得输出流
  1401. response.reset(); //清空输出流
  1402. String fileName = new String(libName.getBytes("gb2312"), "ISO8859-1") +".xlsx";
  1403. response.setHeader("Content-disposition", "attachment; filename="+ fileName); //设定输出文件头
  1404. response.setContentType("application/vnd.ms-excel;charset=UTF-8");
  1405. response.setCharacterEncoding("utf-8");
  1406. Admin admin =(Admin) request.getSession().getAttribute("admin");
  1407. Merchant merchant=merchantService.getMerchantByPosCode(admin.getLoginName());
  1408. Map<String, Object> params = new HashMap<String, Object>();
  1409. params.put("GTE_imei", request.getParameter("GTE_imei")==null?"":request.getParameter("GTE_imei"));
  1410. params.put("LTE_imei", request.getParameter("LTE_imei")==null?"":request.getParameter("LTE_imei"));
  1411. params.put("GTE_deviceCode", request.getParameter("GTE_deviceCode")==null?"":request.getParameter("GTE_deviceCode"));
  1412. params.put("LTE_deviceCode", request.getParameter("LTE_deviceCode")==null?"":request.getParameter("LTE_deviceCode"));
  1413. params.put("EQ_isSpan", request.getParameter("EQ_isSpan")==null?"":request.getParameter("EQ_isSpan"));
  1414. params.put("EQ_status", request.getParameter("EQ_status")==null?"":request.getParameter("EQ_status"));
  1415. if(StringUtils.isNotEmpty(request.getParameter("EQ_orgCode"))){
  1416. params.put("EQ_orgCode", request.getParameter("EQ_orgCode"));
  1417. }else {
  1418. params.put("LIKE_orgCode", merchant.getOrgCode());
  1419. }
  1420. params.put("EQ_batchCode", request.getParameter("EQ_batchCode")==null?"":request.getParameter("EQ_batchCode"));
  1421. params.put("EQ_emsNumber", request.getParameter("EQ_emsNumber")==null?"":request.getParameter("EQ_emsNumber"));
  1422. params.put("LIKE_remarks", request.getParameter("LIKE_remarks")==null?"":request.getParameter("LIKE_remarks"));
  1423. Page<Device> list = deviceService.findDeviceByPage(params, initPage(1, 10000, Direction.ASC, new String[]{"updateTime"}));
  1424. List<ExcelColumn> myColumns3 = new ArrayList<ExcelColumn>();
  1425. myColumns3.add(new ExcelColumn("imei号", "imei", 20));
  1426. myColumns3.add(new ExcelColumn("现商户", "posCode", 20));
  1427. myColumns3.add(new ExcelColumn("现商户名称", "unitName", 20));
  1428. myColumns3.add(new ExcelColumn("现状态", "status", 20));
  1429. myColumns3.add(new ExcelColumn("设备名称", "deviceName", 20));
  1430. myColumns3.add(new ExcelColumn("小塾号", "deviceNumber", 20));
  1431. myColumns3.add(new ExcelColumn("设备颜色", "deviceColor", 20));
  1432. myColumns3.add(new ExcelColumn("设备型号", "deviceModel", 20));
  1433. myColumns3.add(new ExcelColumn("设备代码", "deviceCode", 20));
  1434. myColumns3.add(new ExcelColumn("simcard", "deviceSn", 20));
  1435. // myColumns3.add(new ExcelColumn("是否跨区", "isSpan", 20));
  1436. myColumns3.add(new ExcelColumn("批次编号", "batchCode", 20));
  1437. myColumns3.add(new ExcelColumn("快递单号", "emsNumber", 20));
  1438. myColumns3.add(new ExcelColumn("快递地址", "emsAddress", 20));
  1439. myColumns3.add(new ExcelColumn("销售单价", "price", 20));
  1440. myColumns3.add(new ExcelColumn("流通类型", "type", 20));
  1441. myColumns3.add(new ExcelColumn("更变时间", "updateTime", 20));
  1442. myColumns3.add(new ExcelColumn("创建时间", "createTime", 20));
  1443. CustomizeToExcel.downFile(myColumns3, objectToMap(list.getContent()), os);
  1444. }catch (IOException e) {
  1445. e.printStackTrace();
  1446. }catch (Exception e1){
  1447. e1.printStackTrace();
  1448. }finally{
  1449. if(os != null){
  1450. try {
  1451. os.flush();
  1452. os.close();
  1453. } catch (IOException e) {
  1454. e.printStackTrace();
  1455. }
  1456. }
  1457. }
  1458. }
  1459. @RequestMapping(value = "/exportAllDevice", method = RequestMethod.POST)
  1460. @ResponseBody
  1461. public void exportAllDevice( HttpServletRequest request, HttpServletResponse response) {
  1462. ServletOutputStream os = null;
  1463. try {
  1464. String libName="设备数据";
  1465. os = response.getOutputStream(); //获得输出流
  1466. response.reset(); //清空输出流
  1467. String fileName = new String(libName.getBytes("gb2312"), "ISO8859-1") +".xlsx";
  1468. response.setHeader("Content-disposition", "attachment; filename="+ fileName); //设定输出文件头
  1469. response.setContentType("application/vnd.ms-excel;charset=UTF-8");
  1470. response.setCharacterEncoding("utf-8");
  1471. Map<String, Object> params = new HashMap<String, Object>();
  1472. params.put("GTE_imei", request.getParameter("GTE_imei")==null?"":request.getParameter("GTE_imei"));
  1473. params.put("LTE_imei", request.getParameter("LTE_imei")==null?"":request.getParameter("LTE_imei"));
  1474. params.put("GTE_deviceCode", request.getParameter("GTE_deviceCode")==null?"":request.getParameter("GTE_deviceCode"));
  1475. params.put("LTE_deviceCode", request.getParameter("LTE_deviceCode")==null?"":request.getParameter("LTE_deviceCode"));
  1476. params.put("EQ_isSpan", request.getParameter("EQ_isSpan")==null?"":request.getParameter("EQ_isSpan"));
  1477. params.put("EQ_status", request.getParameter("EQ_status")==null?"":request.getParameter("EQ_status"));
  1478. params.put("EQ_batchCode", request.getParameter("EQ_batchCode")==null?"":request.getParameter("EQ_batchCode"));
  1479. params.put("EQ_emsNumber", request.getParameter("EQ_emsNumber")==null?"":request.getParameter("EQ_emsNumber"));
  1480. params.put("LIKE_remarks", request.getParameter("LIKE_remarks")==null?"":request.getParameter("LIKE_remarks"));
  1481. Page<Device> list = deviceService.findDeviceByPage(params, initPage(1, 100000, Direction.DESC, new String[]{"createTime"}));
  1482. List<ExcelColumn> myColumns3 = new ArrayList<ExcelColumn>();
  1483. myColumns3.add(new ExcelColumn("imei号", "imei", 20));
  1484. myColumns3.add(new ExcelColumn("现商户", "posCode", 20));
  1485. myColumns3.add(new ExcelColumn("现商户名称", "unitName", 20));
  1486. myColumns3.add(new ExcelColumn("现状态", "status", 20));
  1487. myColumns3.add(new ExcelColumn("设备名称", "deviceName", 20));
  1488. myColumns3.add(new ExcelColumn("小塾号", "deviceNumber", 20));
  1489. myColumns3.add(new ExcelColumn("设备颜色", "deviceColor", 20));
  1490. myColumns3.add(new ExcelColumn("设备型号", "deviceModel", 20));
  1491. myColumns3.add(new ExcelColumn("设备代码", "deviceCode", 20));
  1492. myColumns3.add(new ExcelColumn("simcard", "deviceSn", 20));
  1493. // myColumns3.add(new ExcelColumn("是否跨区", "isSpan", 20));
  1494. myColumns3.add(new ExcelColumn("批次编号", "batchCode", 20));
  1495. myColumns3.add(new ExcelColumn("快递单号", "emsNumber", 20));
  1496. myColumns3.add(new ExcelColumn("快递地址", "emsAddress", 20));
  1497. myColumns3.add(new ExcelColumn("销售单价", "price", 20));
  1498. myColumns3.add(new ExcelColumn("流通类型", "type", 20));
  1499. myColumns3.add(new ExcelColumn("更变时间", "updateTime", 20));
  1500. myColumns3.add(new ExcelColumn("创建时间", "createTime", 20));
  1501. CustomizeToExcel.downFile(myColumns3, objectToMap(list.getContent()), os);
  1502. }catch (IOException e) {
  1503. e.printStackTrace();
  1504. }catch (Exception e1){
  1505. e1.printStackTrace();
  1506. }finally{
  1507. if(os != null){
  1508. try {
  1509. os.flush();
  1510. os.close();
  1511. } catch (IOException e) {
  1512. e.printStackTrace();
  1513. }
  1514. }
  1515. }
  1516. }
  1517. private static List<Map<String, Object>> objectToMap(List<?> list) throws Exception {
  1518. if (list == null)
  1519. return null;
  1520. List<Map<String, Object>> maps=new ArrayList<Map<String,Object>>();
  1521. Map<String, Object> map=null;
  1522. for (Object obj : list) {
  1523. map = new HashMap<String, Object>();
  1524. BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
  1525. PropertyDescriptor[] propertyDescriptors = beanInfo
  1526. .getPropertyDescriptors();
  1527. for (PropertyDescriptor property : propertyDescriptors) {
  1528. String key = property.getName();
  1529. if (key.compareToIgnoreCase("class") == 0) {
  1530. continue;
  1531. }
  1532. Method getter = property.getReadMethod();
  1533. Object value = getter != null ? getter.invoke(obj) : null;
  1534. if("isSpan".equals(key)){
  1535. map.put(key, "1".equals(value!=null ? value.toString(): "")?"无":"已跨");
  1536. }else if("status".equals(key)){
  1537. String str="";
  1538. switch (value!=null ?value.toString():"") {
  1539. case "1":
  1540. str="待确认收货";
  1541. break;
  1542. case "2":
  1543. str="已确认收货";
  1544. break;
  1545. case "3":
  1546. str="退回待确认收货 ";
  1547. break;
  1548. case "4":
  1549. str="退回已确认收货";
  1550. break;
  1551. default:
  1552. str="删除";
  1553. break;
  1554. }
  1555. map.put(key, str);
  1556. }else if("type".equals(key)){
  1557. String str="";
  1558. switch (value!=null ?value.toString():"") {
  1559. case "1":
  1560. str="出售";
  1561. break;
  1562. case "2":
  1563. str="租赁";
  1564. break;
  1565. case "3":
  1566. str="损坏 ";
  1567. break;
  1568. case "4":
  1569. str="内部使用";
  1570. break;
  1571. default:
  1572. str="";
  1573. break;
  1574. }
  1575. map.put(key, str);
  1576. }else {
  1577. map.put(key, value);
  1578. }
  1579. }
  1580. if(obj.getClass().equals(Device.class)){
  1581. String unitName="";
  1582. Device device=(Device)obj;
  1583. if(device.getMerchant()!=null){
  1584. unitName=device.getMerchant().getUnitName();
  1585. }
  1586. map.put("unitName", unitName);
  1587. }
  1588. maps.add(map);
  1589. }
  1590. return maps;
  1591. }
  1592. @RequestMapping(value = "/exportMerchant", method = RequestMethod.POST)
  1593. @ResponseBody
  1594. public void exportMerchant( HttpServletRequest request, HttpServletResponse response) {
  1595. ServletOutputStream os = null;
  1596. try {
  1597. String libName="商户数据";
  1598. os = response.getOutputStream(); //获得输出流
  1599. response.reset(); //清空输出流
  1600. String fileName = new String(libName.getBytes("gb2312"), "ISO8859-1") +".xlsx";
  1601. response.setHeader("Content-disposition", "attachment; filename="+ fileName); //设定输出文件头
  1602. response.setContentType("application/vnd.ms-excel;charset=UTF-8");
  1603. response.setCharacterEncoding("utf-8");
  1604. HttpSession session = request.getSession();
  1605. Admin admin =(Admin) session.getAttribute("admin");
  1606. Merchant merchant=merchantService.getMerchantByPosCode(admin.getLoginName());
  1607. Map<String, Object> params = new HashMap<String, Object>();
  1608. params.put("LIKE_unitName", request.getParameter("LIKE_unitName")==null?"":request.getParameter("LIKE_unitName"));
  1609. params.put("LIKE_posCode", request.getParameter("LIKE_posCode")==null?"":request.getParameter("LIKE_posCode"));
  1610. if(request.getParameter("signType")!=null ) {
  1611. if("0".equals(request.getParameter("signType").toString())){
  1612. params.put("EQ_signType", 0);
  1613. }else if("1".equals(request.getParameter("signType").toString())){
  1614. params.put("GTE_signType", 1);
  1615. }
  1616. }
  1617. params.put("NOT_status", 4);
  1618. String orgCode=request.getParameter("LIKE_orgCode")==null?"":request.getParameter("LIKE_orgCode");
  1619. if(StringUtils.isNotEmpty(orgCode)) {
  1620. params.put("LIKE_orgCode", orgCode);
  1621. }else {
  1622. params.put("LIKE_orgCode", merchant.getOrgCode());
  1623. }
  1624. Page<Merchant> list = merchantService.findMerchantByPage(params, initPage(1, 10000, Direction.DESC, new String[]{"createTime"}));
  1625. List<ExcelColumn> myColumns3 = new ArrayList<ExcelColumn>();
  1626. myColumns3.add(new ExcelColumn("商户账号", "posCode", 20));
  1627. myColumns3.add(new ExcelColumn("商户编码", "orgCode", 20));
  1628. myColumns3.add(new ExcelColumn("商户类别", "type", 20));
  1629. myColumns3.add(new ExcelColumn("商户级别", "level", 20));
  1630. myColumns3.add(new ExcelColumn("商户名称:合作名称/合作校区", "unitName", 40));
  1631. myColumns3.add(new ExcelColumn("法人姓名", "legalPerson", 20));
  1632. myColumns3.add(new ExcelColumn("法人电话", "phone", 20));
  1633. myColumns3.add(new ExcelColumn("商户代表", "deputyName", 20));
  1634. myColumns3.add(new ExcelColumn("代表电话", "deputyPhone", 20));
  1635. myColumns3.add(new ExcelColumn("套餐:套餐类型", "mealType", 20));
  1636. myColumns3.add(new ExcelColumn("套餐:服务包类型 ", "signType", 20));
  1637. myColumns3.add(new ExcelColumn("签约端口数量", "portNum", 20));
  1638. myColumns3.add(new ExcelColumn("机构塾币", "libService_0", 20));
  1639. myColumns3.add(new ExcelColumn("平台塾币", "platformService", 20));
  1640. myColumns3.add(new ExcelColumn("套餐人数", "libService_1", 20));
  1641. myColumns3.add(new ExcelColumn("充值/已结算(月份)", "monthStr", 20));
  1642. myColumns3.add(new ExcelColumn("合同开始日期", "signTime", 20));
  1643. myColumns3.add(new ExcelColumn("合同结束日期", "endSignTime", 20));
  1644. myColumns3.add(new ExcelColumn("激活开始日期", "startActiveTimeStr", 20));
  1645. myColumns3.add(new ExcelColumn("激活结束日期", "activeTimeStr", 20));
  1646. myColumns3.add(new ExcelColumn("计费开始日", "computeTimeStr", 20));
  1647. myColumns3.add(new ExcelColumn("下个结算日", "nextSummaryTime", 20));
  1648. myColumns3.add(new ExcelColumn("关联机构", "joinName", 20));
  1649. myColumns3.add(new ExcelColumn("关联学校", "schoolName", 20));
  1650. myColumns3.add(new ExcelColumn("签约数(练习册用)", "signService", 20));
  1651. myColumns3.add(new ExcelColumn("硬件数量", "hardwareService", 20));
  1652. myColumns3.add(new ExcelColumn("服务:签约单价", "price", 20));
  1653. myColumns3.add(new ExcelColumn("硬件:签约单价", "hardwarePrice", 20));
  1654. myColumns3.add(new ExcelColumn("平台服务费", "outPrice", 20));
  1655. myColumns3.add(new ExcelColumn("状态", "status", 20));
  1656. myColumns3.add(new ExcelColumn("创建时间", "createTime", 20));
  1657. CustomizeToExcel.downFile(myColumns3, objectMerchantToMap(list.getContent()), os);
  1658. }catch (IOException e) {
  1659. e.printStackTrace();
  1660. }catch (Exception e1){
  1661. e1.printStackTrace();
  1662. }finally{
  1663. if(os != null){
  1664. try {
  1665. os.flush();
  1666. os.close();
  1667. } catch (IOException e) {
  1668. e.printStackTrace();
  1669. }
  1670. }
  1671. }
  1672. }
  1673. @RequestMapping(value = "/exportMerchantBackup", method = RequestMethod.POST)
  1674. @ResponseBody
  1675. public void exportMerchantBackup( HttpServletRequest request, HttpServletResponse response) {
  1676. ServletOutputStream os = null;
  1677. try {
  1678. String libName="商户备份数据";
  1679. os = response.getOutputStream(); //获得输出流
  1680. response.reset(); //清空输出流
  1681. String fileName = new String(libName.getBytes("gb2312"), "ISO8859-1") +".xlsx";
  1682. response.setHeader("Content-disposition", "attachment; filename="+ fileName); //设定输出文件头
  1683. response.setContentType("application/vnd.ms-excel;charset=UTF-8");
  1684. response.setCharacterEncoding("utf-8");
  1685. Map<String, Object> params = new HashMap<String, Object>();
  1686. params.put("LIKE_unitName", request.getParameter("LIKE_unitName")==null?"":request.getParameter("LIKE_unitName"));
  1687. params.put("LIKE_posCode", request.getParameter("LIKE_posCode")==null?"":request.getParameter("LIKE_posCode"));
  1688. params.put("EQ_backupMonth", request.getParameter("EQ_backupMonth")==null||StringUtils.isEmpty(request.getParameter("EQ_backupMonth").toString())? DateHelper.format(new Date(),"yyyy-MM") :request.getParameter("EQ_backupMonth"));
  1689. if(request.getParameter("signType")!=null ) {
  1690. if("0".equals(request.getParameter("signType").toString())){
  1691. params.put("EQ_signType", 0);
  1692. }else if("1".equals(request.getParameter("signType").toString())){
  1693. params.put("GTE_signType", 1);
  1694. }
  1695. }
  1696. params.put("NOT_status", 4);
  1697. Page<MerchantBackup> list = merchantBackupService.findMerchantBackupByPage(params, initPage(1, 10000, Direction.DESC, new String[]{"createTime"}));
  1698. List<ExcelColumn> myColumns3 = new ArrayList<ExcelColumn>();
  1699. myColumns3.add(new ExcelColumn("备份月份", "backupMonth", 20));
  1700. myColumns3.add(new ExcelColumn("商户账号", "posCode", 20));
  1701. myColumns3.add(new ExcelColumn("商户编码", "orgCode", 20));
  1702. myColumns3.add(new ExcelColumn("商户类别", "type", 20));
  1703. myColumns3.add(new ExcelColumn("商户级别", "level", 20));
  1704. myColumns3.add(new ExcelColumn("商户名称:合作名称/合作校区", "unitName", 40));
  1705. myColumns3.add(new ExcelColumn("法人姓名", "legalPerson", 20));
  1706. myColumns3.add(new ExcelColumn("法人电话", "phone", 20));
  1707. myColumns3.add(new ExcelColumn("商户代表", "deputyName", 20));
  1708. myColumns3.add(new ExcelColumn("代表电话", "deputyPhone", 20));
  1709. myColumns3.add(new ExcelColumn("套餐:套餐类型", "mealType", 20));
  1710. myColumns3.add(new ExcelColumn("套餐:服务包类型 ", "signType", 20));
  1711. myColumns3.add(new ExcelColumn("签约端口数量", "portNum", 20));
  1712. myColumns3.add(new ExcelColumn("机构塾币", "libService_0", 20));
  1713. myColumns3.add(new ExcelColumn("平台塾币", "platformService", 20));
  1714. myColumns3.add(new ExcelColumn("套餐人数", "libService_1", 20));
  1715. myColumns3.add(new ExcelColumn("充值/已结算(月份)", "monthStr", 20));
  1716. myColumns3.add(new ExcelColumn("合同开始日期", "signTime", 20));
  1717. myColumns3.add(new ExcelColumn("合同结束日期", "endSignTime", 20));
  1718. myColumns3.add(new ExcelColumn("激活开始日期", "startActiveTimeStr", 20));
  1719. myColumns3.add(new ExcelColumn("激活结束日期", "activeTimeStr", 20));
  1720. myColumns3.add(new ExcelColumn("计费开始日", "computeTimeStr", 20));
  1721. myColumns3.add(new ExcelColumn("下个结算日", "nextSummaryTime", 20));
  1722. myColumns3.add(new ExcelColumn("关联机构", "joinName", 20));
  1723. myColumns3.add(new ExcelColumn("关联学校", "schoolName", 20));
  1724. myColumns3.add(new ExcelColumn("签约数(练习册用)", "signService", 20));
  1725. myColumns3.add(new ExcelColumn("硬件数量", "hardwareService", 20));
  1726. myColumns3.add(new ExcelColumn("服务:签约单价", "price", 20));
  1727. myColumns3.add(new ExcelColumn("硬件:签约单价", "hardwarePrice", 20));
  1728. myColumns3.add(new ExcelColumn("平台服务费", "outPrice", 20));
  1729. myColumns3.add(new ExcelColumn("状态", "status", 20));
  1730. myColumns3.add(new ExcelColumn("创建时间", "createTime", 20));
  1731. CustomizeToExcel.downFile(myColumns3, objectMerchantBackupToMap(list.getContent()), os);
  1732. }catch (IOException e) {
  1733. e.printStackTrace();
  1734. }catch (Exception e1){
  1735. e1.printStackTrace();
  1736. }finally{
  1737. if(os != null){
  1738. try {
  1739. os.flush();
  1740. os.close();
  1741. } catch (IOException e) {
  1742. e.printStackTrace();
  1743. }
  1744. }
  1745. }
  1746. }
  1747. private List<Map<String, Object>> objectMerchantBackupToMap(List<MerchantBackup> list) throws Exception {
  1748. if (list == null)
  1749. return null;
  1750. List<Map<String, Object>> maps=new ArrayList<Map<String,Object>>();
  1751. Map<String, Object> map=null;
  1752. for (MerchantBackup obj : list) {
  1753. map = new HashMap<String, Object>();
  1754. BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
  1755. PropertyDescriptor[] propertyDescriptors = beanInfo
  1756. .getPropertyDescriptors();
  1757. for (PropertyDescriptor property : propertyDescriptors) {
  1758. String key = property.getName();
  1759. if (key.compareToIgnoreCase("class") == 0) {
  1760. continue;
  1761. }
  1762. Method getter = property.getReadMethod();
  1763. Object value = getter != null ? getter.invoke(obj) : null;
  1764. if("type".equals(key)){
  1765. String str="";
  1766. switch (value!=null ?value.toString():"") {
  1767. case "1":
  1768. str="直接签约(旧模式)";
  1769. break;
  1770. case "2":
  1771. str="内部消耗";
  1772. break;
  1773. case "3":
  1774. str="外部签约";
  1775. break;
  1776. case "4":
  1777. str="内部不结算(财务)";
  1778. break;
  1779. case "5":
  1780. str="直接签约(新模式)";
  1781. break;
  1782. case "6":
  1783. str="旧转新(新不结算)";
  1784. break;
  1785. case "7":
  1786. str="旧转新(新旧不结算)";
  1787. break;
  1788. default:
  1789. str="";
  1790. break;
  1791. }
  1792. map.put(key, str);
  1793. }else if("level".equals(key)){
  1794. String str="";
  1795. switch (value!=null ?value.toString():"") {
  1796. case "1":
  1797. str="市代";
  1798. break;
  1799. case "2":
  1800. str="区代";
  1801. break;
  1802. case "3":
  1803. str="学校独家";
  1804. break;
  1805. case "4":
  1806. str="普通";
  1807. break;
  1808. default:
  1809. str="";
  1810. break;
  1811. }
  1812. map.put(key, str);
  1813. }else if("status".equals(key)){
  1814. String str="";
  1815. switch (value!=null ?value.toString():"") {
  1816. case "1":
  1817. str="待签";
  1818. break;
  1819. case "2":
  1820. str="已签待交付";
  1821. break;
  1822. case "3":
  1823. str="已签已交付";
  1824. break;
  1825. case "4":
  1826. str="删除";
  1827. break;
  1828. default:
  1829. str="";
  1830. break;
  1831. }
  1832. map.put(key, str);
  1833. }else if("signType".equals(key)){
  1834. String str="";
  1835. String monthStr="";
  1836. String startActiveTimeStr="";
  1837. String activeTimeStr="";
  1838. String computeTimeStr="";
  1839. String libService_0="";
  1840. String libService_1="";
  1841. switch (value!=null ?value.toString():"") {
  1842. case "0":
  1843. str="旧兼容模式";
  1844. monthStr="";
  1845. startActiveTimeStr="";
  1846. activeTimeStr="";
  1847. computeTimeStr="";
  1848. libService_0=obj.getLibService()+"";
  1849. break;
  1850. case "1":
  1851. str="服务包1";
  1852. monthStr=obj.getLibServiceMonth()+"/"+obj.getCurIsSummary();
  1853. startActiveTimeStr=DateHelper.format(obj.getStartActiveTime(), "yyyy-MM-dd") ;
  1854. activeTimeStr=DateHelper.format(obj.getActiveTime(), "yyyy-MM-dd") ;
  1855. if(obj.getComputeTime()!=null) {
  1856. computeTimeStr=DateHelper.format(obj.getComputeTime(), "yyyy-MM-dd") ;
  1857. }
  1858. libService_1=obj.getLibService()+"";
  1859. break;
  1860. case "2":
  1861. str="服务包2";
  1862. monthStr=obj.getLibServiceMonth()+"/"+obj.getCurIsSummary();
  1863. startActiveTimeStr=DateHelper.format(obj.getStartActiveTime(), "yyyy-MM-dd") ;
  1864. activeTimeStr=DateHelper.format(obj.getActiveTime(), "yyyy-MM-dd") ;
  1865. if(obj.getComputeTime()!=null) {
  1866. computeTimeStr=DateHelper.format(obj.getComputeTime(), "yyyy-MM-dd") ;
  1867. }
  1868. libService_1=obj.getLibService()+"";
  1869. break;
  1870. case "3":
  1871. str="服务包3";
  1872. monthStr=obj.getLibServiceMonth()+"/"+obj.getCurIsSummary();
  1873. startActiveTimeStr=DateHelper.format(obj.getStartActiveTime(), "yyyy-MM-dd") ;
  1874. activeTimeStr=DateHelper.format(obj.getActiveTime(), "yyyy-MM-dd") ;
  1875. if(obj.getComputeTime()!=null) {
  1876. computeTimeStr=DateHelper.format(obj.getComputeTime(), "yyyy-MM-dd") ;
  1877. }
  1878. libService_1=obj.getLibService()+"";
  1879. break;
  1880. case "4":
  1881. str="服务包4";
  1882. monthStr=obj.getLibServiceMonth()+"/"+obj.getCurIsSummary();
  1883. startActiveTimeStr=DateHelper.format(obj.getStartActiveTime(), "yyyy-MM-dd") ;
  1884. activeTimeStr=DateHelper.format(obj.getActiveTime(), "yyyy-MM-dd") ;
  1885. if(obj.getComputeTime()!=null) {
  1886. computeTimeStr=DateHelper.format(obj.getComputeTime(), "yyyy-MM-dd") ;
  1887. }
  1888. libService_1=obj.getLibService()+"";
  1889. break;
  1890. case "5":
  1891. str="服务包5";
  1892. monthStr=obj.getLibServiceMonth()+"/"+obj.getCurIsSummary();
  1893. startActiveTimeStr=DateHelper.format(obj.getStartActiveTime(), "yyyy-MM-dd") ;
  1894. activeTimeStr=DateHelper.format(obj.getActiveTime(), "yyyy-MM-dd") ;
  1895. if(obj.getComputeTime()!=null) {
  1896. computeTimeStr=DateHelper.format(obj.getComputeTime(), "yyyy-MM-dd") ;
  1897. }
  1898. libService_1=obj.getLibService()+"";
  1899. break;
  1900. default:
  1901. str="";
  1902. monthStr="";
  1903. startActiveTimeStr="";
  1904. activeTimeStr="" ;
  1905. computeTimeStr="";
  1906. libService_0="";
  1907. libService_1="";
  1908. break;
  1909. }
  1910. map.put(key, str);
  1911. map.put("monthStr",monthStr);
  1912. map.put("startActiveTimeStr", startActiveTimeStr);
  1913. map.put("activeTimeStr", activeTimeStr);
  1914. map.put("computeTimeStr", computeTimeStr);
  1915. map.put("libService_0", libService_0);
  1916. map.put("libService_1", libService_1);
  1917. }else if("mealType".equals(key)){
  1918. String str="";
  1919. switch (value!=null ?value.toString():"") {
  1920. case "0":
  1921. str="旧兼容模式";
  1922. break;
  1923. case "1":
  1924. str="优选套餐";
  1925. break;
  1926. case "2":
  1927. str="VIP套餐";
  1928. break;
  1929. case "3":
  1930. str="尊享套餐";
  1931. break;
  1932. default:
  1933. str="";
  1934. break;
  1935. }
  1936. map.put(key, str);
  1937. }else if("signTime".equals(key)){
  1938. map.put(key,DateHelper.format(obj.getSignTime(), "yyyy-MM-dd"));
  1939. }else if("endSignTime".equals(key)){
  1940. map.put(key,DateHelper.format(obj.getEndSignTime(), "yyyy-MM-dd"));
  1941. }else if("nextSummaryTime".equals(key)){
  1942. map.put(key,DateHelper.format(obj.getNextSummaryTime(), "yyyy-MM-dd"));
  1943. }else {
  1944. map.put(key, value);
  1945. }
  1946. }
  1947. List<PositionSchoolV1Dto> positionSchoolV1Dtos=new ArrayList<PositionSchoolV1Dto>();
  1948. String schoolText="";
  1949. if(StringUtils.isNotEmpty(obj.getLibId())) {
  1950. positionSchoolV1Dtos= merchantAreaService.findSchoolList(obj.getLibId());
  1951. if(positionSchoolV1Dtos!=null) {
  1952. for (PositionSchoolV1Dto positionSchoolV1Dto : positionSchoolV1Dtos) {
  1953. schoolText=schoolText+positionSchoolV1Dto.getSchoolName()+";";
  1954. }
  1955. if(schoolText.endsWith(";")) {
  1956. schoolText=schoolText.substring(0, schoolText.length()-1);
  1957. }
  1958. }
  1959. }
  1960. map.put("joinName", obj.getLibJoin()!=null ? obj.getLibJoin().getLeagueName() : "");
  1961. map.put("schoolName", schoolText);
  1962. maps.add(map);
  1963. }
  1964. return maps;
  1965. }
  1966. private List<Map<String, Object>> objectMerchantToMap(List<Merchant> list) throws Exception {
  1967. if (list == null)
  1968. return null;
  1969. List<Map<String, Object>> maps=new ArrayList<Map<String,Object>>();
  1970. Map<String, Object> map=null;
  1971. for (Merchant obj : list) {
  1972. map = new HashMap<String, Object>();
  1973. BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
  1974. PropertyDescriptor[] propertyDescriptors = beanInfo
  1975. .getPropertyDescriptors();
  1976. for (PropertyDescriptor property : propertyDescriptors) {
  1977. String key = property.getName();
  1978. if (key.compareToIgnoreCase("class") == 0) {
  1979. continue;
  1980. }
  1981. Method getter = property.getReadMethod();
  1982. Object value = getter != null ? getter.invoke(obj) : null;
  1983. if("type".equals(key)){
  1984. String str="";
  1985. switch (value!=null ?value.toString():"") {
  1986. case "1":
  1987. str="直接签约(旧模式)";
  1988. break;
  1989. case "2":
  1990. str="内部消耗";
  1991. break;
  1992. case "3":
  1993. str="外部签约";
  1994. break;
  1995. case "4":
  1996. str="内部不结算(财务)";
  1997. break;
  1998. case "5":
  1999. str="直接签约(新模式)";
  2000. break;
  2001. case "6":
  2002. str="旧转新(新不结算)";
  2003. break;
  2004. case "7":
  2005. str="旧转新(新旧不结算)";
  2006. break;
  2007. default:
  2008. str="";
  2009. break;
  2010. }
  2011. map.put(key, str);
  2012. }else if("level".equals(key)){
  2013. String str="";
  2014. switch (value!=null ?value.toString():"") {
  2015. case "1":
  2016. str="市代";
  2017. break;
  2018. case "2":
  2019. str="区代";
  2020. break;
  2021. case "3":
  2022. str="学校独家";
  2023. break;
  2024. case "4":
  2025. str="普通";
  2026. break;
  2027. default:
  2028. str="";
  2029. break;
  2030. }
  2031. map.put(key, str);
  2032. }else if("status".equals(key)){
  2033. String str="";
  2034. switch (value!=null ?value.toString():"") {
  2035. case "1":
  2036. str="待签";
  2037. break;
  2038. case "2":
  2039. str="已签待交付";
  2040. break;
  2041. case "3":
  2042. str="已签已交付";
  2043. break;
  2044. case "4":
  2045. str="删除";
  2046. break;
  2047. default:
  2048. str="";
  2049. break;
  2050. }
  2051. map.put(key, str);
  2052. }else if("signType".equals(key)){
  2053. String str="";
  2054. String monthStr="";
  2055. String startActiveTimeStr="";
  2056. String activeTimeStr="";
  2057. String computeTimeStr="";
  2058. String libService_0="";
  2059. String libService_1="";
  2060. switch (value!=null ?value.toString():"") {
  2061. case "0":
  2062. str="旧兼容模式";
  2063. monthStr="";
  2064. startActiveTimeStr="";
  2065. activeTimeStr="";
  2066. computeTimeStr="";
  2067. libService_0=obj.getLibService()+"";
  2068. break;
  2069. case "1":
  2070. str="服务包1";
  2071. monthStr=obj.getLibServiceMonth()+"/"+obj.getCurIsSummary();
  2072. startActiveTimeStr=DateHelper.format(obj.getStartActiveTime(), "yyyy-MM-dd") ;
  2073. activeTimeStr=DateHelper.format(obj.getActiveTime(), "yyyy-MM-dd") ;
  2074. if(obj.getComputeTime()!=null) {
  2075. computeTimeStr=DateHelper.format(obj.getComputeTime(), "yyyy-MM-dd") ;
  2076. }
  2077. libService_1=obj.getLibService()+"";
  2078. break;
  2079. case "2":
  2080. str="服务包2";
  2081. monthStr=obj.getLibServiceMonth()+"/"+obj.getCurIsSummary();
  2082. startActiveTimeStr=DateHelper.format(obj.getStartActiveTime(), "yyyy-MM-dd") ;
  2083. activeTimeStr=DateHelper.format(obj.getActiveTime(), "yyyy-MM-dd") ;
  2084. if(obj.getComputeTime()!=null) {
  2085. computeTimeStr=DateHelper.format(obj.getComputeTime(), "yyyy-MM-dd") ;
  2086. }
  2087. libService_1=obj.getLibService()+"";
  2088. break;
  2089. case "3":
  2090. str="服务包3";
  2091. monthStr=obj.getLibServiceMonth()+"/"+obj.getCurIsSummary();
  2092. startActiveTimeStr=DateHelper.format(obj.getStartActiveTime(), "yyyy-MM-dd") ;
  2093. activeTimeStr=DateHelper.format(obj.getActiveTime(), "yyyy-MM-dd") ;
  2094. if(obj.getComputeTime()!=null) {
  2095. computeTimeStr=DateHelper.format(obj.getComputeTime(), "yyyy-MM-dd") ;
  2096. }
  2097. libService_1=obj.getLibService()+"";
  2098. break;
  2099. case "4":
  2100. str="服务包4";
  2101. monthStr=obj.getLibServiceMonth()+"/"+obj.getCurIsSummary();
  2102. startActiveTimeStr=DateHelper.format(obj.getStartActiveTime(), "yyyy-MM-dd") ;
  2103. activeTimeStr=DateHelper.format(obj.getActiveTime(), "yyyy-MM-dd") ;
  2104. if(obj.getComputeTime()!=null) {
  2105. computeTimeStr=DateHelper.format(obj.getComputeTime(), "yyyy-MM-dd") ;
  2106. }
  2107. libService_1=obj.getLibService()+"";
  2108. break;
  2109. case "5":
  2110. str="服务包5";
  2111. monthStr=obj.getLibServiceMonth()+"/"+obj.getCurIsSummary();
  2112. startActiveTimeStr=DateHelper.format(obj.getStartActiveTime(), "yyyy-MM-dd") ;
  2113. activeTimeStr=DateHelper.format(obj.getActiveTime(), "yyyy-MM-dd") ;
  2114. if(obj.getComputeTime()!=null) {
  2115. computeTimeStr=DateHelper.format(obj.getComputeTime(), "yyyy-MM-dd") ;
  2116. }
  2117. libService_1=obj.getLibService()+"";
  2118. break;
  2119. default:
  2120. str="";
  2121. monthStr="";
  2122. startActiveTimeStr="";
  2123. activeTimeStr="" ;
  2124. computeTimeStr="";
  2125. libService_0="";
  2126. libService_1="";
  2127. break;
  2128. }
  2129. map.put(key, str);
  2130. map.put("monthStr",monthStr);
  2131. map.put("startActiveTimeStr", startActiveTimeStr);
  2132. map.put("activeTimeStr", activeTimeStr);
  2133. map.put("computeTimeStr", computeTimeStr);
  2134. map.put("libService_0", libService_0);
  2135. map.put("libService_1", libService_1);
  2136. }else if("mealType".equals(key)){
  2137. String str="";
  2138. switch (value!=null ?value.toString():"") {
  2139. case "0":
  2140. str="旧兼容模式";
  2141. break;
  2142. case "1":
  2143. str="优选套餐";
  2144. break;
  2145. case "2":
  2146. str="VIP套餐";
  2147. break;
  2148. case "3":
  2149. str="尊享套餐";
  2150. break;
  2151. default:
  2152. str="";
  2153. break;
  2154. }
  2155. map.put(key, str);
  2156. }else if("signTime".equals(key)){
  2157. map.put(key,DateHelper.format(obj.getSignTime(), "yyyy-MM-dd"));
  2158. }else if("endSignTime".equals(key)){
  2159. map.put(key,DateHelper.format(obj.getEndSignTime(), "yyyy-MM-dd"));
  2160. }else if("nextSummaryTime".equals(key)){
  2161. map.put(key,DateHelper.format(obj.getNextSummaryTime(), "yyyy-MM-dd"));
  2162. }else {
  2163. map.put(key, value);
  2164. }
  2165. }
  2166. List<PositionSchoolV1Dto> positionSchoolV1Dtos=new ArrayList<PositionSchoolV1Dto>();
  2167. String schoolText="";
  2168. if(StringUtils.isNotEmpty(obj.getLibId())) {
  2169. positionSchoolV1Dtos= merchantAreaService.findSchoolList(obj.getLibId());
  2170. if(positionSchoolV1Dtos!=null) {
  2171. for (PositionSchoolV1Dto positionSchoolV1Dto : positionSchoolV1Dtos) {
  2172. schoolText=schoolText+positionSchoolV1Dto.getSchoolName()+";";
  2173. }
  2174. if(schoolText.endsWith(";")) {
  2175. schoolText=schoolText.substring(0, schoolText.length()-1);
  2176. }
  2177. }
  2178. }
  2179. map.put("joinName", obj.getLibJoin()!=null ? obj.getLibJoin().getLeagueName() : "");
  2180. map.put("schoolName", schoolText);
  2181. maps.add(map);
  2182. }
  2183. return maps;
  2184. }
  2185. @RequestMapping(value = "/exportParts", method = RequestMethod.POST)
  2186. @ResponseBody
  2187. public void exportParts( HttpServletRequest request, HttpServletResponse response) {
  2188. ServletOutputStream os = null;
  2189. try {
  2190. String libName="配件数据";
  2191. os = response.getOutputStream(); //获得输出流
  2192. response.reset(); //清空输出流
  2193. String fileName = new String(libName.getBytes("gb2312"), "ISO8859-1") +".xlsx";
  2194. response.setHeader("Content-disposition", "attachment; filename="+ fileName); //设定输出文件头
  2195. response.setContentType("application/vnd.ms-excel;charset=UTF-8");
  2196. response.setCharacterEncoding("utf-8");
  2197. Map<String, Object> params = new HashMap<String, Object>();
  2198. HttpSession session = request.getSession();
  2199. Admin admin =(Admin) session.getAttribute("admin");
  2200. Merchant merchant=merchantService.getMerchantByPosCode(admin.getLoginName());
  2201. params.put("LIKE_name", request.getParameter("name")==null?"":request.getParameter("name"));
  2202. params.put("LIKE_remarks", request.getParameter("remarks")==null?"":request.getParameter("remarks"));
  2203. if(merchant!=null){
  2204. params.put("LIKE_orgCode", merchant.getOrgCode());
  2205. }
  2206. Page<DeviceParts> page = devicePartsService.findDevicePartsByPage(params, initPage(1, 10000, Direction.DESC, new String[]{"createTime"}));
  2207. List<DeviceParts> orderList=new ArrayList<DeviceParts>();
  2208. List<DeviceParts> devicePartsList= page.getContent();
  2209. if(merchant!=null){
  2210. for (DeviceParts deviceParts : devicePartsList) {
  2211. if(deviceParts.getOrgCode().equals(merchant.getOrgCode())){
  2212. orderList.add(0, deviceParts);
  2213. }else{
  2214. orderList.add(deviceParts);
  2215. }
  2216. }
  2217. }else{
  2218. orderList=devicePartsList;
  2219. }
  2220. List<ExcelColumn> myColumns3 = new ArrayList<ExcelColumn>();
  2221. myColumns3.add(new ExcelColumn("现商户", "posCode", 20));
  2222. myColumns3.add(new ExcelColumn("现商户名称", "unitName", 20));
  2223. myColumns3.add(new ExcelColumn("配件名称", "name", 20));
  2224. myColumns3.add(new ExcelColumn("配件颜色", "partsColor", 20));
  2225. myColumns3.add(new ExcelColumn("已收货(现商户)", "sellNum", 20));
  2226. myColumns3.add(new ExcelColumn("待收货(现商户)", "sellWaitNum", 20));
  2227. myColumns3.add(new ExcelColumn("待收货(退回)", "returnWaitNum", 20));
  2228. myColumns3.add(new ExcelColumn("备注", "remarks", 20));
  2229. myColumns3.add(new ExcelColumn("更变时间", "updateTime", 20));
  2230. CustomizeToExcel.downFile(myColumns3, objectToPartsMap(orderList), os);
  2231. }catch (IOException e) {
  2232. e.printStackTrace();
  2233. }catch (Exception e1){
  2234. e1.printStackTrace();
  2235. }finally{
  2236. if(os != null){
  2237. try {
  2238. os.flush();
  2239. os.close();
  2240. } catch (IOException e) {
  2241. e.printStackTrace();
  2242. }
  2243. }
  2244. }
  2245. }
  2246. private static List<Map<String, Object>> objectToPartsMap(List<?> list) throws Exception {
  2247. if (list == null)
  2248. return null;
  2249. List<Map<String, Object>> maps=new ArrayList<Map<String,Object>>();
  2250. Map<String, Object> map=null;
  2251. for (Object obj : list) {
  2252. map = new HashMap<String, Object>();
  2253. BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
  2254. PropertyDescriptor[] propertyDescriptors = beanInfo
  2255. .getPropertyDescriptors();
  2256. for (PropertyDescriptor property : propertyDescriptors) {
  2257. String key = property.getName();
  2258. if (key.compareToIgnoreCase("class") == 0) {
  2259. continue;
  2260. }
  2261. Method getter = property.getReadMethod();
  2262. Object value = getter != null ? getter.invoke(obj) : null;
  2263. map.put(key, value);
  2264. }
  2265. if(obj.getClass().equals(DeviceParts.class)){
  2266. String unitName="";
  2267. DeviceParts device=(DeviceParts)obj;
  2268. if(device.getMerchant()!=null){
  2269. unitName=device.getMerchant().getUnitName();
  2270. }
  2271. map.put("unitName", unitName);
  2272. }
  2273. maps.add(map);
  2274. }
  2275. return maps;
  2276. }
  2277. @RequestMapping("/deviceActCountList")
  2278. public String deviceActCountList(Model model,
  2279. @RequestParam(required = false, defaultValue = "100") int pageSize,
  2280. @RequestParam(required = false, defaultValue = "1") int pageNo,
  2281. String merchantId)throws Exception {
  2282. Map<String, Object> params = new HashMap<String, Object>();
  2283. HttpSession session = request.getSession();
  2284. Admin admin =(Admin) session.getAttribute("admin");
  2285. Merchant merchant=merchantService.getMerchantByPosCode(admin.getLoginName());
  2286. String type=request.getParameter("type")==null?"1":request.getParameter("type");
  2287. if(merchant!=null && !merchant.getOrgCode().equals("SSJ-FX")){
  2288. if("1".equals(type) || "2".equals(type)) {
  2289. params.put("from_merchant_id", merchant.getId());
  2290. }else {
  2291. params.put("to_merchant_id", merchant.getId());
  2292. }
  2293. }else{
  2294. params.put("from_merchant_id", "");
  2295. List<Merchant> list=new ArrayList<Merchant>();
  2296. List<Merchant> alllist=merchantService.findMerchantByPage();
  2297. for (Merchant m : alllist) {
  2298. if(!m.getOrgCode().equals("SSJ-FX")){
  2299. list.add(m);
  2300. }
  2301. }
  2302. model.addAttribute("poslist", list);
  2303. }
  2304. if(StringUtils.isNotEmpty(merchantId)){
  2305. if("1".equals(type) || "2".equals(type)) {
  2306. params.put("from_merchant_id", merchantId);
  2307. }else {
  2308. params.put("to_merchant_id", merchantId);
  2309. }
  2310. }
  2311. params.put("merchantId", merchantId);
  2312. params.put("type", type);
  2313. params.put("batchCode", request.getParameter("batchCode")==null?"":request.getParameter("batchCode"));
  2314. params.put("startTime", request.getParameter("startTime"));
  2315. params.put("endTime", request.getParameter("endTime"));
  2316. SplitPage sp = new SplitPage();
  2317. sp.setAction(request.getRequestURI());
  2318. sp.setPageNo(pageNo);
  2319. sp.setPageSize(pageSize);
  2320. sp.setParams(params);
  2321. Page<Map<String,Object>> page = deviceActService.findDeviceActCountListPage(params,initPage(pageNo, pageSize, Direction.DESC, new String[]{"createTime"}));
  2322. sp.setRowCnt((int) page.getTotalElements());
  2323. model.addAttribute("list", page.getContent());
  2324. model.addAttribute("listNavigatHtml", sp.getSysPaginHtml());
  2325. model.addAttribute("page", sp);
  2326. model.addAttribute("search", params);
  2327. return "sys/fx/deviceActCountList";
  2328. }
  2329. @RequestMapping("/deviceActDetailsList")
  2330. public String deviceActCountDetailsList(Model model,
  2331. @RequestParam(required = false, defaultValue = "100") int pageSize,
  2332. @RequestParam(required = false, defaultValue = "1") int pageNo)throws Exception {
  2333. Map<String, Object> params = new HashMap<String, Object>();
  2334. HttpSession session = request.getSession();
  2335. Admin admin =(Admin) session.getAttribute("admin");
  2336. Merchant merchant=merchantService.getMerchantByPosCode(admin.getLoginName());
  2337. // if(merchant!=null && !merchant.getOrgCode().equals("SSJ-FX")){
  2338. // params.put("from_merchant_id", merchant.getId());
  2339. // }else{
  2340. params.put("from_merchant_id", "");
  2341. // }
  2342. params.put("type", request.getParameter("type")==null?"1":request.getParameter("type"));
  2343. params.put("batchCode", request.getParameter("batchCode")==null?"":request.getParameter("batchCode"));
  2344. SplitPage sp = new SplitPage();
  2345. sp.setAction(request.getRequestURI());
  2346. sp.setPageNo(pageNo);
  2347. sp.setPageSize(pageSize);
  2348. sp.setParams(params);
  2349. Page<Map<String,Object>> page = deviceActService.findDeviceActDetailsPage(params, initPage(pageNo, pageSize, Direction.DESC, new String[]{"createTime"}));
  2350. sp.setRowCnt((int) page.getTotalElements());
  2351. model.addAttribute("list", page.getContent());
  2352. model.addAttribute("listNavigatHtml", sp.getSysPaginHtml());
  2353. model.addAttribute("page", sp);
  2354. model.addAttribute("search", params);
  2355. List<Merchant> list=merchantService.findMerchantByPage();
  2356. model.addAttribute("poslist", list);
  2357. return "sys/fx/deviceActDetailsList";
  2358. }
  2359. @RequestMapping(value = "/exportDeviceActCountList", method = RequestMethod.POST)
  2360. @ResponseBody
  2361. public void exportDeviceActCountList( HttpServletRequest request, HttpServletResponse response,
  2362. String merchantId) {
  2363. ServletOutputStream os = null;
  2364. try {
  2365. String libName="批次管理导出_"+DateHelper.formatDateByFormat(new Date(), "yyyy-MM-dd_HH:mm:ss");
  2366. os = response.getOutputStream(); //获得输出流
  2367. response.reset(); //清空输出流
  2368. String fileName = new String(libName.getBytes("gb2312"), "ISO8859-1") +".xlsx";
  2369. response.setHeader("Content-disposition", "attachment; filename="+ fileName); //设定输出文件头
  2370. response.setContentType("application/vnd.ms-excel;charset=UTF-8");
  2371. response.setCharacterEncoding("utf-8");
  2372. Map<String, Object> params = new HashMap<String, Object>();
  2373. HttpSession session = request.getSession();
  2374. Admin admin =(Admin) session.getAttribute("admin");
  2375. Merchant merchant=merchantService.getMerchantByPosCode(admin.getLoginName());
  2376. if(merchant!=null && !merchant.getOrgCode().equals("SSJ-FX")){
  2377. params.put("from_merchant_id", merchant.getId());
  2378. }else{
  2379. params.put("from_merchant_id", "");
  2380. }
  2381. if(StringUtils.isNotEmpty(merchantId)){
  2382. params.put("from_merchant_id", merchantId);
  2383. }
  2384. int type=request.getParameter("type")==null?1:Integer.parseInt(request.getParameter("type").toString()) ;
  2385. String typeName = type>2 ? (type==3 ? "设备入库":"退回入库"):(type==1 ? "分配下级":"退回上级");
  2386. params.put("merchantId", merchantId);
  2387. params.put("type", type);
  2388. params.put("batchCode", request.getParameter("batchCode")==null?"":request.getParameter("batchCode"));
  2389. params.put("startTime", request.getParameter("startTime"));
  2390. params.put("endTime", request.getParameter("endTime"));
  2391. Page<Map<String,Object>> page = deviceActService.findDeviceActCountListPage(params,initPage(1, 10000, Direction.DESC, new String[]{"createTime"}));
  2392. List<Map<String,Object>> list= page.getContent();
  2393. for (Map<String, Object> map : list) {
  2394. map.put("type", typeName);
  2395. }
  2396. List<ExcelColumn> myColumns3 = new ArrayList<ExcelColumn>();
  2397. myColumns3.add(new ExcelColumn("物流状态", "type", 20));
  2398. myColumns3.add(new ExcelColumn("批次编号", "batch_code", 20));
  2399. myColumns3.add(new ExcelColumn("批次总量", "count", 20));
  2400. myColumns3.add(new ExcelColumn("始商户", "fpos_code", 20));
  2401. myColumns3.add(new ExcelColumn("始商户名称", "funit_name", 20));
  2402. myColumns3.add(new ExcelColumn("至商户", "pos_code", 20));
  2403. myColumns3.add(new ExcelColumn("至商户名称", "unit_name", 20));
  2404. myColumns3.add(new ExcelColumn("快递单号", "ems_number", 20));
  2405. myColumns3.add(new ExcelColumn("快递联系人", "ems_username", 20));
  2406. myColumns3.add(new ExcelColumn("快递联系号码", "ems_telephone", 20));
  2407. myColumns3.add(new ExcelColumn("快递地址", "ems_address", 40));
  2408. myColumns3.add(new ExcelColumn("备注", "remarks", 20));
  2409. myColumns3.add(new ExcelColumn("操作时间", "create_time", 20));
  2410. CustomizeToExcel.downFile(myColumns3, list, os);
  2411. }catch (IOException e) {
  2412. e.printStackTrace();
  2413. }catch (Exception e1){
  2414. e1.printStackTrace();
  2415. }finally{
  2416. if(os != null){
  2417. try {
  2418. os.flush();
  2419. os.close();
  2420. } catch (IOException e) {
  2421. e.printStackTrace();
  2422. }
  2423. }
  2424. }
  2425. }
  2426. @RequestMapping(value = "/exportDeviceActDetailsList", method = RequestMethod.POST)
  2427. @ResponseBody
  2428. public void exportDeviceActDetailsList( HttpServletRequest request, HttpServletResponse response,
  2429. String merchantId) {
  2430. ServletOutputStream os = null;
  2431. try {
  2432. String batchCode=request.getParameter("batchCode")==null?"":request.getParameter("batchCode");
  2433. int type=request.getParameter("type")==null?1:Integer.parseInt(request.getParameter("type").toString()) ;
  2434. String typeName = type>2 ? (type==3 ? "设备入库":"退回入库"):(type==1 ? "分配下级":"退回上级");
  2435. String libName="批次_"+batchCode+"_"+typeName+"_明细表";
  2436. os = response.getOutputStream(); //获得输出流
  2437. response.reset(); //清空输出流
  2438. String fileName = new String(libName.getBytes("gb2312"), "ISO8859-1") +".xlsx";
  2439. response.setHeader("Content-disposition", "attachment; filename="+ fileName); //设定输出文件头
  2440. response.setContentType("application/vnd.ms-excel;charset=UTF-8");
  2441. response.setCharacterEncoding("utf-8");
  2442. Map<String, Object> params = new HashMap<String, Object>();
  2443. HttpSession session = request.getSession();
  2444. Admin admin =(Admin) session.getAttribute("admin");
  2445. Merchant merchant=merchantService.getMerchantByPosCode(admin.getLoginName());
  2446. if(merchant!=null && !merchant.getOrgCode().equals("SSJ-FX")){
  2447. params.put("from_merchant_id", merchant.getId());
  2448. }else{
  2449. params.put("from_merchant_id", "");
  2450. }
  2451. params.put("type", request.getParameter("type")==null?"1":request.getParameter("type"));
  2452. params.put("batchCode", request.getParameter("batchCode")==null?"":request.getParameter("batchCode"));
  2453. Page<Map<String,Object>> page = deviceActService.findDeviceActDetailsPage(params, initPage(1, 100000, Direction.DESC, new String[]{"createTime"}));
  2454. List<Map<String,Object>> list= page.getContent();
  2455. for (Map<String, Object> map : list) {
  2456. map.put("type", typeName);
  2457. switch (map.get("status").toString()) {
  2458. case "1":
  2459. map.put("status", "待收货(现商户)");
  2460. break;
  2461. case "2":
  2462. map.put("status", "已收货(现商户)");
  2463. break;
  2464. case "3":
  2465. map.put("status", "待收货(退回)");
  2466. break;
  2467. case "4":
  2468. map.put("status", "已收货(退回)");
  2469. break;
  2470. case "5":
  2471. map.put("status", "无效");
  2472. break;
  2473. default:
  2474. map.put("status", "");
  2475. break;
  2476. }
  2477. switch (map.get("dtype").toString()) {
  2478. case "1":
  2479. map.put("dtype", "出售");
  2480. break;
  2481. case "2":
  2482. map.put("dtype", "租赁");
  2483. break;
  2484. case "3":
  2485. map.put("dtype", "损坏");
  2486. break;
  2487. case "4":
  2488. map.put("dtype", "留存 ");
  2489. break;
  2490. default:
  2491. map.put("dtype", "");
  2492. break;
  2493. }
  2494. }
  2495. List<ExcelColumn> myColumns3 = new ArrayList<ExcelColumn>();
  2496. myColumns3.add(new ExcelColumn("物流状态", "type", 20));
  2497. myColumns3.add(new ExcelColumn("批次编号", "batch_code", 20));
  2498. myColumns3.add(new ExcelColumn("imei号", "imei", 20));
  2499. myColumns3.add(new ExcelColumn("设备名称", "device_name", 20));
  2500. myColumns3.add(new ExcelColumn("设备颜色", "device_color", 20));
  2501. myColumns3.add(new ExcelColumn("设备编号", "device_number", 20));
  2502. myColumns3.add(new ExcelColumn("设备SN", "device_sn", 20));
  2503. myColumns3.add(new ExcelColumn("设备状态", "status", 20));
  2504. myColumns3.add(new ExcelColumn("流通类型", "dtype", 20));
  2505. myColumns3.add(new ExcelColumn("至商户", "pos_code", 20));
  2506. myColumns3.add(new ExcelColumn("至商户名称", "unit_name", 40));
  2507. myColumns3.add(new ExcelColumn("快递单号", "ems_number", 20));
  2508. myColumns3.add(new ExcelColumn("快递联系人", "ems_username", 20));
  2509. myColumns3.add(new ExcelColumn("快递联系号码", "ems_telephone", 20));
  2510. myColumns3.add(new ExcelColumn("快递地址", "ems_address", 20));
  2511. myColumns3.add(new ExcelColumn("备注", "remarks", 20));
  2512. myColumns3.add(new ExcelColumn("操作时间", "create_time", 20));
  2513. CustomizeToExcel.downFile(myColumns3, list, os);
  2514. }catch (IOException e) {
  2515. e.printStackTrace();
  2516. }catch (Exception e1){
  2517. e1.printStackTrace();
  2518. }finally{
  2519. if(os != null){
  2520. try {
  2521. os.flush();
  2522. os.close();
  2523. } catch (IOException e) {
  2524. e.printStackTrace();
  2525. }
  2526. }
  2527. }
  2528. }
  2529. @RequestMapping("/deviceUnloadingList")
  2530. public String deviceUnloadingList(Model model,
  2531. @RequestParam(required = false, defaultValue = "100") int pageSize,
  2532. @RequestParam(required = false, defaultValue = "1") int pageNo,String merchantId)throws Exception {
  2533. Map<String, Object> params = new HashMap<String, Object>();
  2534. HttpSession session = request.getSession();
  2535. Admin admin =(Admin) session.getAttribute("admin");
  2536. Merchant merchant=merchantService.getMerchantByPosCode(admin.getLoginName());
  2537. List<Merchant> poslist=merchantService.findMerchantByPage();
  2538. if(StringUtils.isEmpty(merchantId)){
  2539. if(!"SSJ-FX".equals(merchant.getOrgCode())){
  2540. merchantId=merchant.getId();
  2541. }
  2542. }
  2543. if(StringUtils.isNotEmpty(merchantId)){
  2544. params.put("merchantId",merchantId);
  2545. }
  2546. params.put("startMonth", request.getParameter("startMonth")==null?DateHelper.format(new Date(), "yyyy-MM"):request.getParameter("startMonth"));
  2547. params.put("endMonth", request.getParameter("endMonth")==null?DateHelper.format(new Date(), "yyyy-MM"):request.getParameter("endMonth"));
  2548. params.put("status", request.getParameter("status")==null?"1":request.getParameter("status"));
  2549. SplitPage sp = new SplitPage();
  2550. sp.setAction(request.getRequestURI());
  2551. sp.setPageNo(pageNo);
  2552. sp.setPageSize(pageSize);
  2553. sp.setParams(params);
  2554. Page<Map<String, Object>> page = deviceService.deviceUnloadingList(params, initPage(pageNo, pageSize, Direction.DESC, new String[]{"createTime"}));
  2555. sp.setRowCnt((int) page.getTotalElements());
  2556. model.addAttribute("list", page.getContent());
  2557. model.addAttribute("listNavigatHtml", sp.getSysPaginHtml());
  2558. model.addAttribute("page", sp);
  2559. model.addAttribute("search", params);
  2560. model.addAttribute("poslist", poslist);
  2561. model.addAttribute("merchant", merchant);
  2562. return "sys/fx/deviceUnloadingList";
  2563. }
  2564. @RequestMapping(value = "/exportDeviceUnloadingList", method = RequestMethod.POST)
  2565. @ResponseBody
  2566. public void exportDeviceUnloadingList( HttpServletRequest request, HttpServletResponse response) {
  2567. ServletOutputStream os = null;
  2568. try {
  2569. HttpSession session = request.getSession();
  2570. Admin admin =(Admin) session.getAttribute("admin");
  2571. String merchantId="";
  2572. Merchant merchant=merchantService.getMerchantByPosCode(admin.getLoginName());
  2573. if(!"SSJ-FX".equals(merchant.getOrgCode())){
  2574. merchantId=merchant.getId();
  2575. }
  2576. os = response.getOutputStream(); //获得输出流
  2577. response.reset(); //清空输出流
  2578. Map<String, Object> params = new HashMap<String, Object>();
  2579. params.put("startMonth", request.getParameter("startMonth")==null?DateHelper.format(new Date(), "yyyy-MM"):request.getParameter("startMonth"));
  2580. params.put("endMonth", request.getParameter("endMonth")==null?DateHelper.format(new Date(), "yyyy-MM"):request.getParameter("endMonth"));
  2581. params.put("status", request.getParameter("status")==null?"1":request.getParameter("status"));
  2582. Page<Map<String, Object>> page = deviceService.deviceUnloadingList(params, initPage(1, 10000, Direction.DESC, new String[]{"createTime"}));
  2583. String fileName ="";
  2584. ClassPathResource classPathResource = null;
  2585. if("1".equals(params.get("status"))){
  2586. fileName= new String("出入库登记".getBytes("gb2312"), "ISO8859-1") +".xlsx";
  2587. classPathResource = new ClassPathResource("/excel/report/report16.xlsx");
  2588. }else if("2".equals(params.get("status"))){
  2589. fileName= new String("全新库存登记".getBytes("gb2312"), "ISO8859-1") +".xlsx";
  2590. classPathResource = new ClassPathResource("/excel/report/report17.xlsx");
  2591. }else if("3".equals(params.get("status"))){
  2592. fileName= new String("二手库存登记".getBytes("gb2312"), "ISO8859-1") +".xlsx";
  2593. classPathResource = new ClassPathResource("/excel/report/report18.xlsx");
  2594. }
  2595. XSSFWorkbook workbook = new XSSFWorkbook(classPathResource.getInputStream());
  2596. int rownum = 4; //添加的起始行
  2597. response.setHeader("Content-disposition", "attachment; filename="+ fileName); //设定输出文件头
  2598. response.setContentType("application/vnd.ms-excel;charset=UTF-8");
  2599. response.setCharacterEncoding("utf-8");
  2600. XSSFSheet sheet = workbook.getSheetAt(0); //读取第一个工作簿
  2601. XSSFRow row;
  2602. XSSFCell cell = null;
  2603. XSSFCellStyle style = this.getxStyle(workbook);
  2604. for (Map<String, Object> map : page.getContent()) {
  2605. row = sheet.createRow(rownum);
  2606. int i = -1;
  2607. myCreateCellx(++i, map.get("time").toString(), row, cell, style); //列1
  2608. myCreateCellx(++i, map.get("unit_name").toString(), row, cell, style); //列1
  2609. myCreateCellx(++i, map.get("price").toString(), row, cell, style); //列1
  2610. myCreateCellx(++i, StringUtils.isNotEmpty(merchantId) ? "*" : map.get("counta").toString(), row, cell, style); //列1
  2611. myCreateCellx(++i, StringUtils.isNotEmpty(merchantId) ? "*" :String.valueOf(Double.parseDouble(map.get("price").toString())*Double.parseDouble(map.get("counta").toString())), row, cell, style); //列1
  2612. myCreateCellx(++i, StringUtils.isNotEmpty(merchantId) ? "*" : map.get("out_price").toString(), row, cell, style); //列1
  2613. myCreateCellx(++i, map.get("countb").toString(), row, cell, style); //列1
  2614. myCreateCellx(++i, StringUtils.isNotEmpty(merchantId) ? "*" :String.valueOf(Double.parseDouble(map.get("out_price").toString())*Double.parseDouble(map.get("countb").toString())), row, cell, style); //列1
  2615. myCreateCellx(++i, String.valueOf(Double.parseDouble(map.get("counta").toString())- Double.parseDouble(map.get("countb").toString())), row, cell, style); //列1
  2616. rownum++;
  2617. }
  2618. workbook.write(os);
  2619. }catch (IOException e) {
  2620. e.printStackTrace();
  2621. }catch (Exception e1){
  2622. e1.printStackTrace();
  2623. }finally{
  2624. if(os != null){
  2625. try {
  2626. os.flush();
  2627. os.close();
  2628. } catch (IOException e) {
  2629. e.printStackTrace();
  2630. }
  2631. }
  2632. }
  2633. }
  2634. private void myCreateCellx(int cellnum, String value, XSSFRow row,XSSFCell cell, XSSFCellStyle style) {
  2635. cell = row.createCell((short) cellnum);
  2636. cell.setCellValue(new XSSFRichTextString(value));
  2637. cell.setCellStyle(style);
  2638. }
  2639. public XSSFCellStyle getxStyle(XSSFWorkbook workbook) {
  2640. //设置字体;
  2641. XSSFFont font = workbook.createFont();
  2642. //设置字体大小;
  2643. font.setFontHeightInPoints((short) 10);
  2644. //设置字体名字;
  2645. font.setFontName("Courier New");
  2646. //font.setItalic(true);
  2647. //font.setStrikeout(true);
  2648. //设置样式;
  2649. XSSFCellStyle style = workbook.createCellStyle();
  2650. //设置底边框;
  2651. style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
  2652. //设置底边框颜色;
  2653. style.setBottomBorderColor(HSSFColor.BLACK.index);
  2654. //设置左边框;
  2655. style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
  2656. //设置左边框颜色;
  2657. style.setLeftBorderColor(HSSFColor.BLACK.index);
  2658. //设置右边框;
  2659. style.setBorderRight(HSSFCellStyle.BORDER_THIN);
  2660. //设置右边框颜色;
  2661. style.setRightBorderColor(HSSFColor.BLACK.index);
  2662. //设置顶边框;
  2663. style.setBorderTop(HSSFCellStyle.BORDER_THIN);
  2664. //设置顶边框颜色;
  2665. style.setTopBorderColor(HSSFColor.BLACK.index);
  2666. //在样式用应用设置的字体;
  2667. style.setFont(font);
  2668. //设置自动换行;
  2669. style.setWrapText(false);
  2670. //设置水平对齐的样式为居中对齐;
  2671. style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
  2672. //设置垂直对齐的样式为居中对齐;
  2673. style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
  2674. return style;
  2675. }
  2676. //当前商户下的所有的设备,支持imei1范围,和批次号
  2677. @RequestMapping("/consumeList")
  2678. public String consumeList(Model model,
  2679. @RequestParam(required = false, defaultValue = "100") int pageSize,
  2680. @RequestParam(required = false, defaultValue = "1") int pageNo)
  2681. throws Exception {
  2682. HttpSession session = request.getSession();
  2683. Admin admin =(Admin) session.getAttribute("admin");
  2684. Merchant merchant=merchantService.getMerchantByPosCode(admin.getLoginName());
  2685. Map<String, Object> params = new HashMap<String, Object>();
  2686. params.put("startTime", request.getParameter("startTime")==null? "" : request.getParameter("startTime"));
  2687. params.put("endTime", request.getParameter("endTime")==null? "" : request.getParameter("endTime"));
  2688. params.put("type", request.getParameter("type")==null? "" : request.getParameter("type"));
  2689. params.put("remarks", request.getParameter("remarks")==null? "" : request.getParameter("remarks"));
  2690. String merchantId=request.getParameter("merchantId")==null? "" :request.getParameter("merchantId");
  2691. if(!"SSJ-FX".equals(merchant.getOrgCode()) && StringUtils.isEmpty(merchantId)){
  2692. merchantId=merchant.getId();
  2693. }
  2694. params.put("merchantId", merchantId);
  2695. SplitPage sp = new SplitPage();
  2696. sp.setAction(request.getRequestURI());
  2697. sp.setPageNo(pageNo);
  2698. sp.setPageSize(pageSize);
  2699. sp.setParams(params);
  2700. Page<Map<String, Object>> page = libJoinConsumeService.findByPage(params, initPage(pageNo, pageSize));
  2701. sp.setRowCnt((int) page.getTotalElements());
  2702. model.addAttribute("list",page.getContent());
  2703. model.addAttribute("listNavigatHtml", sp.getSysPaginHtml());
  2704. model.addAttribute("page", sp);
  2705. model.addAttribute("search", params);
  2706. List<Merchant> list=new ArrayList<Merchant>();
  2707. if("SSJ-FX".equals(merchant.getOrgCode())){
  2708. list=merchantService.getMerchantByLikeOrgCode(merchant.getOrgCode());
  2709. }else{
  2710. list=merchantService.getMerchantByParentPosCode(merchant.getPosCode());
  2711. list.add(merchant);
  2712. }
  2713. model.addAttribute("poslist", list);
  2714. model.addAttribute("merchant", merchant);
  2715. return "sys/fx/consumeList";
  2716. }
  2717. //当前商户下的所有的设备,支持imei1范围,和批次号
  2718. @RequestMapping("/consumeFxList")
  2719. public String consumeFxList(Model model,
  2720. @RequestParam(required = false, defaultValue = "100") int pageSize,
  2721. @RequestParam(required = false, defaultValue = "1") int pageNo)
  2722. throws Exception {
  2723. Map<String, Object> params = new HashMap<String, Object>();
  2724. params.put("startTime", request.getParameter("startTime")==null? "" : request.getParameter("startTime"));
  2725. params.put("endTime", request.getParameter("endTime")==null? "" : request.getParameter("endTime"));
  2726. params.put("type", request.getParameter("type")==null? "" : request.getParameter("type"));
  2727. params.put("remarks", request.getParameter("remarks")==null? "" : request.getParameter("remarks"));
  2728. String merchantId=request.getParameter("merchantId")==null? "" :request.getParameter("merchantId");
  2729. params.put("merchantId", merchantId);
  2730. Merchant merchant= merchantService.getById(merchantId);
  2731. SplitPage sp = new SplitPage();
  2732. sp.setAction(request.getRequestURI());
  2733. sp.setPageNo(pageNo);
  2734. sp.setPageSize(pageSize);
  2735. sp.setParams(params);
  2736. Page<Map<String, Object>> page = libJoinConsumeService.findByPage(params, initPage(pageNo, pageSize));
  2737. sp.setRowCnt((int) page.getTotalElements());
  2738. model.addAttribute("list",page.getContent());
  2739. model.addAttribute("listNavigatHtml", sp.getSysPaginHtml());
  2740. model.addAttribute("page", sp);
  2741. model.addAttribute("search", params);
  2742. model.addAttribute("merchant",merchant);
  2743. return "sys/fx/consumeFxList";
  2744. }
  2745. @RequestMapping(value = "/exportConsumeList", method = RequestMethod.POST)
  2746. @ResponseBody
  2747. public void exportConsumeList(Model model,
  2748. @RequestParam(required = false, defaultValue = "100") int pageSize,
  2749. @RequestParam(required = false, defaultValue = "1") int pageNo) {
  2750. ServletOutputStream os = null;
  2751. try {
  2752. String libName="塾币使用情况-明细";
  2753. os = response.getOutputStream(); //获得输出流
  2754. response.reset(); //清空输出流
  2755. String fileName = new String(libName.getBytes("gb2312"), "ISO8859-1") +".xlsx";
  2756. response.setHeader("Content-disposition", "attachment; filename="+ fileName); //设定输出文件头
  2757. response.setContentType("application/vnd.ms-excel;charset=UTF-8");
  2758. response.setCharacterEncoding("utf-8");
  2759. HttpSession session = request.getSession();
  2760. Admin admin =(Admin) session.getAttribute("admin");
  2761. Merchant merchant=merchantService.getMerchantByPosCode(admin.getLoginName());
  2762. Map<String, Object> params = new HashMap<String, Object>();
  2763. params.put("startTime", request.getParameter("startTime")==null? "" : request.getParameter("startTime"));
  2764. params.put("endTime", request.getParameter("endTime")==null? "" : request.getParameter("endTime"));
  2765. params.put("type", request.getParameter("type")==null? "" : request.getParameter("type"));
  2766. params.put("remarks", request.getParameter("remarks")==null? "" : request.getParameter("remarks"));
  2767. String merchantId=request.getParameter("merchantId")==null? "" :request.getParameter("merchantId");
  2768. if(!"SSJ-FX".equals(merchant.getOrgCode()) && StringUtils.isEmpty(merchantId)){
  2769. merchantId=merchant.getId();
  2770. }
  2771. params.put("merchantId", merchantId);
  2772. SplitPage sp = new SplitPage();
  2773. sp.setAction(request.getRequestURI());
  2774. sp.setPageNo(pageNo);
  2775. sp.setPageSize(pageSize);
  2776. sp.setParams(params);
  2777. Page<Map<String, Object>> page = libJoinConsumeService.findByPage(params, initPage(pageNo, pageSize));
  2778. List<Map<String,Object>> list= page.getContent();
  2779. for (Map<String, Object> map : list) {
  2780. switch (map.get("type").toString()) {
  2781. case "1":
  2782. map.put("type", "塾币充值【旧模式】");
  2783. break;
  2784. case "2":
  2785. map.put("type", "塾币消费【旧模式】");
  2786. break;
  2787. case "3":
  2788. map.put("type", "服务扣除【旧模式】");
  2789. break;
  2790. case "4":
  2791. map.put("type", "上级分配币【旧模式】 ");
  2792. break;
  2793. case "5":
  2794. map.put("type", "向下分配币【旧模式】");
  2795. break;
  2796. case "6":
  2797. map.put("type", "服务包开通【新模式】");
  2798. break;
  2799. case "7":
  2800. map.put("type", "服务包激活【新模式】");
  2801. break;
  2802. case "8":
  2803. map.put("type", "服务包结算【新模式】");
  2804. break;
  2805. case "9":
  2806. map.put("type", "加油包开通【新模式】");
  2807. break;
  2808. case "10":
  2809. map.put("type", "加油包激活【新模式】");
  2810. break;
  2811. case "11":
  2812. map.put("type", "加油包结算【新模式】");
  2813. break;
  2814. default:
  2815. map.put("type", "");
  2816. break;
  2817. }
  2818. switch (map.get("fm_type")!=null ? map.get("fm_type").toString() : "") {
  2819. case "1":
  2820. map.put("fm_type", "直接签约(旧模式)");
  2821. break;
  2822. case "2":
  2823. map.put("fm_type", "内部消耗");
  2824. break;
  2825. case "3":
  2826. map.put("fm_type", "外部签约");
  2827. break;
  2828. case "4":
  2829. map.put("fm_type", "内部不结算(财务)");
  2830. break;
  2831. case "5":
  2832. map.put("fm_type", "直接签约(新模式)");
  2833. break;
  2834. case "6":
  2835. map.put("fm_type", "旧转新(新不结算)");
  2836. break;
  2837. case "7":
  2838. map.put("fm_type", "旧转新(新旧不结算)");
  2839. break;
  2840. default:
  2841. map.put("fm_type", "");
  2842. break;
  2843. }
  2844. switch (map.get("tm_type")!=null ? map.get("tm_type").toString() : "") {
  2845. case "1":
  2846. map.put("tm_type", "直接签约(旧模式)");
  2847. break;
  2848. case "2":
  2849. map.put("tm_type", "内部消耗");
  2850. break;
  2851. case "3":
  2852. map.put("tm_type", "外部签约");
  2853. break;
  2854. case "4":
  2855. map.put("tm_type", "内部不结算(财务)");
  2856. break;
  2857. case "5":
  2858. map.put("tm_type", "直接签约(新模式)");
  2859. break;
  2860. case "6":
  2861. map.put("tm_type", "旧转新(新不结算)");
  2862. break;
  2863. case "7":
  2864. map.put("tm_type", "旧转新(新旧不结算)");
  2865. break;
  2866. default:
  2867. map.put("tm_type", "");
  2868. break;
  2869. }
  2870. }
  2871. List<ExcelColumn> myColumns3 = new ArrayList<ExcelColumn>();
  2872. myColumns3.add(new ExcelColumn("始商户", "fm_unit_name", 20));
  2873. myColumns3.add(new ExcelColumn("始商户类型", "fm_type", 20));
  2874. myColumns3.add(new ExcelColumn("至商户", "tm_unit_name", 20));
  2875. myColumns3.add(new ExcelColumn("至商户类型", "tm_type", 20));
  2876. myColumns3.add(new ExcelColumn("操作", "type", 20));
  2877. myColumns3.add(new ExcelColumn("机构塾币", "lib_service", 20));
  2878. myColumns3.add(new ExcelColumn("平台塾币", "platform_service", 20));
  2879. myColumns3.add(new ExcelColumn("备注", "remarks", 20));
  2880. myColumns3.add(new ExcelColumn("操作时间", "create_time", 20));
  2881. CustomizeToExcel.downFile(myColumns3, list, os);
  2882. }catch (IOException e) {
  2883. e.printStackTrace();
  2884. }catch (Exception e1){
  2885. e1.printStackTrace();
  2886. }finally{
  2887. if(os != null){
  2888. try {
  2889. os.flush();
  2890. os.close();
  2891. } catch (IOException e) {
  2892. e.printStackTrace();
  2893. }
  2894. }
  2895. }
  2896. }
  2897. //批量分配设备商户下
  2898. @RequestMapping("/likejoinList")
  2899. @ResponseBody
  2900. public Response likejoinList(Model model,String name,String province,String city,String area,Integer pageNo,Integer pageSize)throws Exception {
  2901. Response response = new Response();
  2902. Map<String,Object> data=new HashMap<String, Object>();
  2903. if(pageNo==null) {
  2904. pageNo=1;
  2905. }
  2906. Long countNum=libJoinService.countByLikeNameAndCity(name, province, city, area);
  2907. List<TbLibJoin> jsonList =libJoinService.findByLikeNameAndCity(name, province, city, area,pageNo,pageSize);
  2908. data.put("jsonList", jsonList);
  2909. data.put("pageNo", pageNo);
  2910. data.put("countNum", countNum);
  2911. data.put("countPage", Math.ceil((double)countNum/(double)pageSize));
  2912. response.success(data, "成功");
  2913. return response;
  2914. }
  2915. //批量分配设备商户下
  2916. @RequestMapping("/areaListPage")
  2917. @ResponseBody
  2918. public Response areaListPage(Model model,String type,String upId,String name,Integer pageNo,Integer pageSize)throws Exception {
  2919. Response response = new Response();
  2920. Map<String,Object> data=new HashMap<String, Object>();
  2921. if(pageNo==null) {
  2922. pageNo=1;
  2923. }
  2924. Long countNum=cnAreaService.countByTypeList(type, upId, name);
  2925. List<CnArea> jsonList =cnAreaService.findByTypeList(type, upId, name, pageNo, pageSize);
  2926. data.put("jsonList", jsonList);
  2927. data.put("pageNo", pageNo);
  2928. data.put("countNum", countNum);
  2929. data.put("countPage", Math.ceil((double)countNum/(double)pageSize));
  2930. response.success(data, "成功");
  2931. return response;
  2932. }
  2933. @RequestMapping("/deviceInList")
  2934. public String deviceInList(Model model,
  2935. @RequestParam(required = false, defaultValue = "100") int pageSize,
  2936. @RequestParam(required = false, defaultValue = "1") int pageNo,String merchantId)throws Exception {
  2937. Map<String, Object> params = new HashMap<String, Object>();
  2938. HttpSession session = request.getSession();
  2939. Admin admin =(Admin) session.getAttribute("admin");
  2940. Merchant merchant=merchantService.getMerchantByPosCode(admin.getLoginName());
  2941. List<Merchant> posList = merchantService.getMerchantByLikeOrgCode(merchant.getOrgCode());
  2942. if(StringUtils.isEmpty(merchantId)){
  2943. if(!"SSJ-FX".equals(merchant.getOrgCode())){
  2944. merchantId=merchant.getId();
  2945. }
  2946. }
  2947. if(StringUtils.isNotEmpty(merchantId)){
  2948. params.put("merchantId",merchantId);
  2949. }
  2950. params.put("fromMerchantId",request.getParameter("fromMerchantId")==null?"":request.getParameter("fromMerchantId"));
  2951. params.put("startMonth", request.getParameter("startMonth")==null?DateHelper.format(new Date(), "yyyy-MM"):request.getParameter("startMonth"));
  2952. params.put("endMonth", request.getParameter("endMonth")==null?DateHelper.format(new Date(), "yyyy-MM"):request.getParameter("endMonth"));
  2953. SplitPage sp = new SplitPage();
  2954. sp.setAction(request.getRequestURI());
  2955. sp.setPageNo(pageNo);
  2956. sp.setPageSize(pageSize);
  2957. sp.setParams(params);
  2958. Page<Map<String, Object>> page = deviceService.deviceInAndOutList(params, initPage(pageNo, pageSize));
  2959. sp.setRowCnt((int) page.getTotalElements());
  2960. model.addAttribute("list", page.getContent());
  2961. model.addAttribute("listNavigatHtml", sp.getSysPaginHtml());
  2962. model.addAttribute("page", sp);
  2963. model.addAttribute("search", params);
  2964. model.addAttribute("poslist", posList);
  2965. model.addAttribute("merchant", merchant);
  2966. return "sys/fx/deviceInList";
  2967. }
  2968. @RequestMapping("/deviceOutList")
  2969. public String deviceOutList(Model model,
  2970. @RequestParam(required = false, defaultValue = "100") int pageSize,
  2971. @RequestParam(required = false, defaultValue = "1") int pageNo,String merchantId)throws Exception {
  2972. Map<String, Object> params = new HashMap<String, Object>();
  2973. HttpSession session = request.getSession();
  2974. Admin admin =(Admin) session.getAttribute("admin");
  2975. Merchant merchant=merchantService.getMerchantByPosCode(admin.getLoginName());
  2976. List<Merchant> posList=merchantService.getMerchantByLikeOrgCode(merchant.getOrgCode());
  2977. if(StringUtils.isEmpty(merchantId)){
  2978. if(!"SSJ-FX".equals(merchant.getOrgCode())){
  2979. merchantId=merchant.getId();
  2980. }
  2981. }
  2982. if(StringUtils.isNotEmpty(merchantId)){
  2983. params.put("merchantId",merchantId);
  2984. }
  2985. params.put("startMonth", request.getParameter("startMonth")==null?DateHelper.format(new Date(), "yyyy-MM"):request.getParameter("startMonth"));
  2986. params.put("endMonth", request.getParameter("endMonth")==null?DateHelper.format(new Date(), "yyyy-MM"):request.getParameter("endMonth"));
  2987. SplitPage sp = new SplitPage();
  2988. sp.setAction(request.getRequestURI());
  2989. sp.setPageNo(pageNo);
  2990. sp.setPageSize(pageSize);
  2991. sp.setParams(params);
  2992. Page<Map<String, Object>> page = deviceService.deviceOutList(params, initPage(pageNo, pageSize));
  2993. sp.setRowCnt((int) page.getTotalElements());
  2994. model.addAttribute("list", page.getContent());
  2995. model.addAttribute("listNavigatHtml", sp.getSysPaginHtml());
  2996. model.addAttribute("page", sp);
  2997. model.addAttribute("search", params);
  2998. model.addAttribute("poslist", posList);
  2999. model.addAttribute("merchant", merchant);
  3000. return "sys/fx/deviceOutList";
  3001. }
  3002. @RequestMapping(value = "/exportDeviceInAndOut", method = RequestMethod.POST)
  3003. @ResponseBody
  3004. public void exportDeviceInAndOut(Model model,
  3005. @RequestParam(required = false, defaultValue = "100") int pageSize,
  3006. @RequestParam(required = false, defaultValue = "1") int pageNo,String merchantId,int type) {
  3007. ServletOutputStream os = null;
  3008. try {
  3009. String libName=type==1?"商户入库":"商户出库";
  3010. os = response.getOutputStream(); //获得输出流
  3011. response.reset(); //清空输出流
  3012. String fileName = new String(libName.getBytes("gb2312"), "ISO8859-1") +".xlsx";
  3013. response.setHeader("Content-disposition", "attachment; filename="+ fileName); //设定输出文件头
  3014. response.setContentType("application/vnd.ms-excel;charset=UTF-8");
  3015. response.setCharacterEncoding("utf-8");
  3016. Map<String, Object> params = new HashMap<String, Object>();
  3017. HttpSession session = request.getSession();
  3018. Admin admin =(Admin) session.getAttribute("admin");
  3019. Merchant merchant=merchantService.getMerchantByPosCode(admin.getLoginName());
  3020. //List<PosterTemplate> posList=merchantService.findMerchantByPage();
  3021. if(StringUtils.isEmpty(merchantId)){
  3022. if(!"SSJ-FX".equals(merchant.getOrgCode())){
  3023. merchantId=merchant.getId();
  3024. }
  3025. }
  3026. if(StringUtils.isNotEmpty(merchantId)){
  3027. params.put("merchantId",merchantId);
  3028. }
  3029. params.put("fromMerchantId",request.getParameter("fromMerchantId")==null?"":request.getParameter("fromMerchantId"));
  3030. params.put("startMonth", request.getParameter("startMonth")==null?DateHelper.format(new Date(), "yyyy-MM"):request.getParameter("startMonth"));
  3031. params.put("endMonth", request.getParameter("endMonth")==null?DateHelper.format(new Date(), "yyyy-MM"):request.getParameter("endMonth"));
  3032. SplitPage sp = new SplitPage();
  3033. sp.setAction(request.getRequestURI());
  3034. sp.setPageNo(pageNo);
  3035. sp.setPageSize(pageSize);
  3036. sp.setParams(params);
  3037. if(type==1){
  3038. Page<Map<String, Object>> page = deviceService.deviceInAndOutList(params, initPage(pageNo, pageSize));
  3039. List<Map<String,Object>> list= page.getContent();
  3040. List<ExcelColumn> myColumns3 = new ArrayList<ExcelColumn>();
  3041. myColumns3.add(new ExcelColumn("日期", "time", 20));
  3042. myColumns3.add(new ExcelColumn("供应商", "unit_name2", 20));
  3043. myColumns3.add(new ExcelColumn("收货商", "unit_name", 20));
  3044. myColumns3.add(new ExcelColumn("收货内容", "content", 20));
  3045. myColumns3.add(new ExcelColumn("入库数量", "counta", 20));
  3046. myColumns3.add(new ExcelColumn("验收回退", "countb", 20));
  3047. myColumns3.add(new ExcelColumn("当期结存", "lefts", 20));
  3048. myColumns3.add(new ExcelColumn("累计库存", "total_left", 20));
  3049. CustomizeToExcel.downFile(myColumns3, list, os);
  3050. }else{
  3051. Page<Map<String, Object>> page = deviceService.deviceOutList(params, initPage(pageNo, pageSize));
  3052. List<Map<String,Object>> list= page.getContent();
  3053. List<ExcelColumn> myColumns3 = new ArrayList<ExcelColumn>();
  3054. myColumns3.add(new ExcelColumn("日期", "time", 20));
  3055. myColumns3.add(new ExcelColumn("商户", "unit_name", 20));
  3056. myColumns3.add(new ExcelColumn("收货内容", "content", 20));
  3057. myColumns3.add(new ExcelColumn("出库数量", "countab", 20));
  3058. if("SSJ-FX".equals(merchant.getOrgCode())){
  3059. myColumns3.add(new ExcelColumn("销售单价", "hardware_price", 20));
  3060. }
  3061. myColumns3.add(new ExcelColumn("出库退回", "countb", 20));
  3062. myColumns3.add(new ExcelColumn("当月出库", "lefts", 20));
  3063. myColumns3.add(new ExcelColumn("累计出库", "total_left", 20));
  3064. CustomizeToExcel.downFile(myColumns3, list, os);
  3065. }
  3066. }catch (IOException e) {
  3067. e.printStackTrace();
  3068. }catch (Exception e1){
  3069. e1.printStackTrace();
  3070. }finally{
  3071. if(os != null){
  3072. try {
  3073. os.flush();
  3074. os.close();
  3075. } catch (IOException e) {
  3076. e.printStackTrace();
  3077. }
  3078. }
  3079. }
  3080. }
  3081. //手动测试运行结算定时任务
  3082. @RequestMapping("/run")
  3083. @ResponseBody
  3084. public Response run(Model model)throws Exception {
  3085. Response response = new Response();
  3086. System.out.println("【套餐模式】处理套餐的数据定时任务,开始...");
  3087. merchantSignService.runMerchantSignByEndTime();
  3088. System.out.println("【套餐模式】处理套餐的数据定时任务,结束。");
  3089. response.success("成功");
  3090. return response;
  3091. }
  3092. //手动测试运行激活任务
  3093. @RequestMapping("/runAc")
  3094. @ResponseBody
  3095. public Response runAc(Model model,String libId)throws Exception {
  3096. Response response = new Response();
  3097. try {
  3098. Merchant merchant = null;
  3099. if (StringUtils.isNotEmpty(libId)) {
  3100. merchant = merchantService.getMerchantByLibId(libId);
  3101. if(merchant!=null) {
  3102. //旧模式,都会记录所有的消费记录,新模式一次性记录消费的
  3103. if(merchant.getSignType()==1) {
  3104. }else {
  3105. //如果还没结算过,就当次开始结算
  3106. if(merchant.getLibServiceMonth()>0 && (merchant.getCurIsSummary()==null || merchant.getCurIsSummary()==0)) {
  3107. merchant.setCurIsSummary(1);
  3108. merchant.setCurSummaryTime(new Date());
  3109. merchant.setNextSummaryTime(DateHelper.getMonthDate(merchant.getCurSummaryTime(),1));
  3110. merchantService.save(merchant);
  3111. TbLibJoinConsume consume = new TbLibJoinConsume();
  3112. consume.setFromLibId(libId);
  3113. consume.setFromMerchantId(merchant.getId());
  3114. consume.setLibService(merchant.getLibService());
  3115. consume.setPlatformService(0);
  3116. consume.setType(2);
  3117. consume.setSignType(merchant.getSignType());
  3118. consume.setRemarks("消费【新模式激活消费】");
  3119. consume.setCreateTime(new Date());
  3120. libJoinConsumeService.save(consume);
  3121. }
  3122. }
  3123. }
  3124. }
  3125. } catch (Exception e) {
  3126. e.printStackTrace();
  3127. }
  3128. response.success("成功");
  3129. return response;
  3130. }
  3131. }