SupplierController.java 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547
  1. package com.jsh.erp.controller;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.jsh.erp.base.BaseController;
  5. import com.jsh.erp.base.TableDataInfo;
  6. import com.jsh.erp.datasource.entities.Supplier;
  7. import com.jsh.erp.service.SupplierService;
  8. import com.jsh.erp.service.SystemConfigService;
  9. import com.jsh.erp.service.UserService;
  10. import com.jsh.erp.service.UserBusinessService;
  11. import com.jsh.erp.utils.*;
  12. import io.swagger.annotations.Api;
  13. import io.swagger.annotations.ApiOperation;
  14. import org.slf4j.Logger;
  15. import org.slf4j.LoggerFactory;
  16. import org.springframework.web.bind.annotation.*;
  17. import org.springframework.web.multipart.MultipartFile;
  18. import javax.annotation.Resource;
  19. import javax.servlet.http.HttpServletRequest;
  20. import javax.servlet.http.HttpServletResponse;
  21. import java.io.File;
  22. import java.util.HashMap;
  23. import java.util.List;
  24. import java.util.Map;
  25. import static com.jsh.erp.utils.ResponseJsonUtil.returnJson;
  26. import static com.jsh.erp.utils.ResponseJsonUtil.returnStr;
  27. /**
  28. * @author ji|sheng|hua 富贵ERP
  29. */
  30. @RestController
  31. @RequestMapping(value = "/supplier")
  32. @Api(tags = {"商家管理"})
  33. public class SupplierController extends BaseController {
  34. private Logger logger = LoggerFactory.getLogger(SupplierController.class);
  35. @Resource
  36. private SupplierService supplierService;
  37. @Resource
  38. private UserBusinessService userBusinessService;
  39. @Resource
  40. private SystemConfigService systemConfigService;
  41. @Resource
  42. private UserService userService;
  43. @GetMapping(value = "/info")
  44. @ApiOperation(value = "根据id获取信息")
  45. public String getList(@RequestParam("id") Long id,
  46. HttpServletRequest request) throws Exception {
  47. Supplier supplier = supplierService.getSupplier(id);
  48. Map<String, Object> objectMap = new HashMap<>();
  49. if(supplier != null) {
  50. objectMap.put("info", supplier);
  51. return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code);
  52. } else {
  53. return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code);
  54. }
  55. }
  56. @GetMapping(value = "/list")
  57. @ApiOperation(value = "获取信息列表")
  58. public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search,
  59. HttpServletRequest request)throws Exception {
  60. String supplier = StringUtil.getInfo(search, "supplier");
  61. String type = StringUtil.getInfo(search, "type");
  62. String phonenum = StringUtil.getInfo(search, "phonenum");
  63. String telephone = StringUtil.getInfo(search, "telephone");
  64. List<Supplier> list = supplierService.select(supplier, type, phonenum, telephone);
  65. return getDataTable(list);
  66. }
  67. @PostMapping(value = "/add")
  68. @ApiOperation(value = "新增")
  69. public String addResource(@RequestBody Supplier supplier, HttpServletRequest request)throws Exception {
  70. Map<String, Object> objectMap = new HashMap<>();
  71. int insert = supplierService.insertSupplier(supplier, request);
  72. return returnStr(objectMap, insert);
  73. }
  74. @PutMapping(value = "/update")
  75. @ApiOperation(value = "修改")
  76. public String updateResource(@RequestBody Supplier supplier, HttpServletRequest request)throws Exception {
  77. Map<String, Object> objectMap = new HashMap<>();
  78. int update = supplierService.updateSupplier(supplier, request);
  79. return returnStr(objectMap, update);
  80. }
  81. @DeleteMapping(value = "/delete")
  82. @ApiOperation(value = "删除")
  83. public String deleteResource(@RequestParam("id") Long id, HttpServletRequest request)throws Exception {
  84. Map<String, Object> objectMap = new HashMap<>();
  85. int delete = supplierService.deleteSupplier(id, request);
  86. return returnStr(objectMap, delete);
  87. }
  88. @DeleteMapping(value = "/deleteBatch")
  89. @ApiOperation(value = "批量删除")
  90. public String batchDeleteResource(@RequestParam("ids") String ids, HttpServletRequest request)throws Exception {
  91. Map<String, Object> objectMap = new HashMap<>();
  92. int delete = supplierService.batchDeleteSupplier(ids, request);
  93. return returnStr(objectMap, delete);
  94. }
  95. @GetMapping(value = "/checkIsNameExist")
  96. @ApiOperation(value = "检查名称是否存在")
  97. public String checkIsNameExist(@RequestParam Long id, @RequestParam(value ="name", required = false) String name,
  98. HttpServletRequest request)throws Exception {
  99. Map<String, Object> objectMap = new HashMap<>();
  100. int exist = supplierService.checkIsNameExist(id, name);
  101. if(exist > 0) {
  102. objectMap.put("status", true);
  103. } else {
  104. objectMap.put("status", false);
  105. }
  106. return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code);
  107. }
  108. @GetMapping(value = "/checkIsNameAndTypeExist")
  109. @ApiOperation(value = "检查名称和类型是否存在")
  110. public String checkIsNameAndTypeExist(@RequestParam Long id,
  111. @RequestParam(value ="name", required = false) String name,
  112. @RequestParam(value ="type") String type,
  113. HttpServletRequest request)throws Exception {
  114. Map<String, Object> objectMap = new HashMap<>();
  115. int exist = supplierService.checkIsNameAndTypeExist(id, name, type);
  116. if(exist > 0) {
  117. objectMap.put("status", true);
  118. } else {
  119. objectMap.put("status", false);
  120. }
  121. return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code);
  122. }
  123. @GetMapping(value = "/checkIsTelephoneAndTypeExist")
  124. @ApiOperation(value = "检查手机号码和类型是否存在")
  125. public String checkIsTelephoneAndTypeExist(@RequestParam Long id,
  126. @RequestParam(value ="telephone", required = false) String telephone,
  127. @RequestParam(value ="type") String type,
  128. HttpServletRequest request){
  129. Map<String, Object> objectMap = new HashMap<>();
  130. int exist = supplierService.checkIsTelephoneAndTypeExist(id, telephone, type);
  131. if (exist > 0) {
  132. objectMap.put("status", true);
  133. } else {
  134. objectMap.put("status", false);
  135. }
  136. return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code);
  137. }
  138. /**
  139. * 查找客户信息-下拉框
  140. * @param request
  141. * @return
  142. */
  143. @PostMapping(value = "/findBySelect_cus")
  144. @ApiOperation(value = "查找客户信息")
  145. public JSONArray findBySelectCus(HttpServletRequest request) {
  146. JSONArray arr = new JSONArray();
  147. try {
  148. String type = "UserCustomer";
  149. Long userId = userService.getUserId(request);
  150. //获取权限信息
  151. String ubValue = userBusinessService.getUBValueByTypeAndKeyId(type, userId.toString());
  152. List<Supplier> supplierList = supplierService.findBySelectCus();
  153. JSONArray dataArray = new JSONArray();
  154. if (null != supplierList) {
  155. boolean customerFlag = systemConfigService.getCustomerFlag();
  156. for (Supplier supplier : supplierList) {
  157. JSONObject item = new JSONObject();
  158. Boolean flag = ubValue.contains("[" + supplier.getId().toString() + "]");
  159. if (!customerFlag || flag) {
  160. item.put("id", supplier.getId());
  161. item.put("supplier", supplier.getSupplier()); //客户名称
  162. dataArray.add(item);
  163. }
  164. }
  165. }
  166. arr = dataArray;
  167. } catch(Exception e){
  168. logger.error(e.getMessage(), e);
  169. }
  170. return arr;
  171. }
  172. /**
  173. * 查找供应商信息-下拉框
  174. * @param request
  175. * @return
  176. */
  177. @PostMapping(value = "/findBySelect_sup")
  178. @ApiOperation(value = "查找供应商信息")
  179. public JSONArray findBySelectSup(HttpServletRequest request) throws Exception{
  180. JSONArray arr = new JSONArray();
  181. try {
  182. List<Supplier> supplierList = supplierService.findBySelectSup();
  183. JSONArray dataArray = new JSONArray();
  184. if (null != supplierList) {
  185. for (Supplier supplier : supplierList) {
  186. JSONObject item = new JSONObject();
  187. item.put("id", supplier.getId());
  188. //供应商名称
  189. item.put("supplier", supplier.getSupplier());
  190. dataArray.add(item);
  191. }
  192. }
  193. arr = dataArray;
  194. } catch(Exception e){
  195. logger.error(e.getMessage(), e);
  196. }
  197. return arr;
  198. }
  199. /**
  200. * 查找往来单位,含供应商和客户信息-下拉框
  201. * @param request
  202. * @return
  203. */
  204. @PostMapping(value = "/findBySelect_organ")
  205. @ApiOperation(value = "查找往来单位,含供应商和客户信息")
  206. public JSONArray findBySelectOrgan(HttpServletRequest request) throws Exception{
  207. JSONArray arr = new JSONArray();
  208. try {
  209. JSONArray dataArray = new JSONArray();
  210. //1、获取供应商信息
  211. List<Supplier> supplierList = supplierService.findBySelectSup();
  212. if (null != supplierList) {
  213. for (Supplier supplier : supplierList) {
  214. JSONObject item = new JSONObject();
  215. item.put("id", supplier.getId());
  216. item.put("supplier", supplier.getSupplier() + "[供应商]"); //供应商名称
  217. dataArray.add(item);
  218. }
  219. }
  220. //2、获取客户信息
  221. String type = "UserCustomer";
  222. Long userId = userService.getUserId(request);
  223. String ubValue = userBusinessService.getUBValueByTypeAndKeyId(type, userId.toString());
  224. List<Supplier> customerList = supplierService.findBySelectCus();
  225. if (null != customerList) {
  226. boolean customerFlag = systemConfigService.getCustomerFlag();
  227. for (Supplier supplier : customerList) {
  228. JSONObject item = new JSONObject();
  229. Boolean flag = ubValue.contains("[" + supplier.getId().toString() + "]");
  230. if (!customerFlag || flag) {
  231. item.put("id", supplier.getId());
  232. item.put("supplier", supplier.getSupplier() + "[客户]"); //客户名称
  233. dataArray.add(item);
  234. }
  235. }
  236. }
  237. arr = dataArray;
  238. } catch(Exception e){
  239. logger.error(e.getMessage(), e);
  240. }
  241. return arr;
  242. }
  243. /**
  244. * 查找会员信息-下拉框
  245. * @param request
  246. * @return
  247. */
  248. @PostMapping(value = "/findBySelect_retail")
  249. @ApiOperation(value = "查找会员信息")
  250. public JSONArray findBySelectRetail(HttpServletRequest request)throws Exception {
  251. JSONArray arr = new JSONArray();
  252. try {
  253. List<Supplier> supplierList = supplierService.findBySelectRetail();
  254. JSONArray dataArray = new JSONArray();
  255. if (null != supplierList) {
  256. for (Supplier supplier : supplierList) {
  257. JSONObject item = new JSONObject();
  258. item.put("id", supplier.getId());
  259. //客户名称
  260. item.put("supplier", supplier.getSupplier());
  261. item.put("advanceIn", supplier.getAdvanceIn()); //预付款金额
  262. dataArray.add(item);
  263. }
  264. }
  265. arr = dataArray;
  266. } catch(Exception e){
  267. logger.error(e.getMessage(), e);
  268. }
  269. return arr;
  270. }
  271. /**
  272. * 批量设置状态-启用或者禁用
  273. * @param jsonObject
  274. * @param request
  275. * @return
  276. */
  277. @PostMapping(value = "/batchSetStatus")
  278. @ApiOperation(value = "批量设置状态")
  279. public String batchSetStatus(@RequestBody JSONObject jsonObject,
  280. HttpServletRequest request)throws Exception {
  281. Boolean status = jsonObject.getBoolean("status");
  282. String ids = jsonObject.getString("ids");
  283. Map<String, Object> objectMap = new HashMap<>();
  284. int res = supplierService.batchSetStatus(status, ids);
  285. if(res > 0) {
  286. return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code);
  287. } else {
  288. return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code);
  289. }
  290. }
  291. /**
  292. * 用户对应客户显示
  293. * @param type UserCustomer-客户;UserSupplier-供应商
  294. * @param keyId
  295. * @param request
  296. * @return
  297. */
  298. @GetMapping(value = "/findUserCustomer")
  299. @ApiOperation(value = "用户对应客户显示")
  300. public JSONArray findUserCustomer(@RequestParam("UBType") String type, @RequestParam("UBKeyId") String keyId,
  301. HttpServletRequest request) throws Exception{
  302. JSONArray arr = new JSONArray();
  303. try {
  304. //获取权限信息
  305. String ubValue = userBusinessService.getUBValueByTypeAndKeyId(type, keyId);
  306. List<Supplier> dataList = supplierService.findUserCustomer();
  307. //开始拼接json数据
  308. JSONObject outer = new JSONObject();
  309. outer.put("id", 0);
  310. outer.put("key", 0);
  311. outer.put("value", 0);
  312. outer.put("title", "客户列表");
  313. outer.put("attributes", "客户列表");
  314. //存放数据json数组
  315. JSONArray dataArray = new JSONArray();
  316. if (null != dataList) {
  317. for (Supplier supplier : dataList) {
  318. JSONObject item = new JSONObject();
  319. item.put("id", supplier.getId());
  320. item.put("key", supplier.getId());
  321. item.put("value", supplier.getId());
  322. item.put("title", supplier.getSupplier());
  323. item.put("attributes", supplier.getSupplier());
  324. Boolean flag = ubValue.contains("[" + supplier.getId().toString() + "]");
  325. if (flag) {
  326. item.put("checked", true);
  327. }
  328. dataArray.add(item);
  329. }
  330. }
  331. outer.put("children", dataArray);
  332. arr.add(outer);
  333. } catch (Exception e) {
  334. logger.error(e.getMessage(), e);
  335. }
  336. return arr;
  337. }
  338. @GetMapping(value = "/findUserSupplier")
  339. @ApiOperation(value = "用户对应供应商显示")
  340. public JSONArray findUserSupplier(@RequestParam(value = "UBType",defaultValue = "UserSupplier") String type,
  341. @RequestParam(value = "UBKeyId") String keyId,
  342. HttpServletRequest request) throws Exception{
  343. JSONArray arr = new JSONArray();
  344. try {
  345. //获取权限信息
  346. String ubValue = userBusinessService.getUBValueByTypeAndKeyId(type, keyId);
  347. List<Supplier> dataList = supplierService.findBySelectSup();
  348. //开始拼接json数据
  349. JSONObject outer = new JSONObject();
  350. outer.put("id", 0);
  351. outer.put("key", 0);
  352. outer.put("value", 0);
  353. outer.put("title", "供应商列表");
  354. outer.put("attributes", "供应商列表");
  355. //存放数据json数组
  356. JSONArray dataArray = new JSONArray();
  357. if (null != dataList) {
  358. for (Supplier supplier : dataList) {
  359. JSONObject item = new JSONObject();
  360. item.put("id", supplier.getId());
  361. item.put("key", supplier.getId());
  362. item.put("value", supplier.getId());
  363. item.put("title", supplier.getSupplier());
  364. item.put("attributes", supplier.getSupplier());
  365. Boolean flag = ubValue.contains("[" + supplier.getId().toString() + "]");
  366. if (flag) {
  367. item.put("checked", true);
  368. }
  369. dataArray.add(item);
  370. }
  371. }
  372. outer.put("children", dataArray);
  373. arr.add(outer);
  374. } catch (Exception e) {
  375. logger.error(e.getMessage(), e);
  376. }
  377. return arr;
  378. }
  379. /**
  380. * 根据客户或供应商查询期初、期初已收等信息
  381. * @param organId
  382. * @param request
  383. * @return
  384. * @throws Exception
  385. */
  386. @GetMapping(value = "/getBeginNeedByOrganId")
  387. @ApiOperation(value = "根据客户或供应商查询期初、期初已收等信息")
  388. public BaseResponseInfo getBeginNeedByOrganId(@RequestParam("organId") Long organId,
  389. HttpServletRequest request)throws Exception {
  390. BaseResponseInfo res = new BaseResponseInfo();
  391. try {
  392. Map<String, Object> map = supplierService.getBeginNeedByOrganId(organId);
  393. res.code = 200;
  394. res.data = map;
  395. } catch (Exception e) {
  396. logger.error(e.getMessage(), e);
  397. res.code = 500;
  398. res.data = "获取数据失败";
  399. }
  400. return res;
  401. }
  402. /**
  403. * 导入供应商
  404. * @param file
  405. * @param request
  406. * @param response
  407. * @return
  408. */
  409. @PostMapping(value = "/importVendor")
  410. @ApiOperation(value = "导入供应商")
  411. public BaseResponseInfo importVendor(MultipartFile file,
  412. HttpServletRequest request, HttpServletResponse response) throws Exception{
  413. BaseResponseInfo res = new BaseResponseInfo();
  414. try {
  415. supplierService.importVendor(file, request);
  416. res.code = 200;
  417. res.data = "导入成功";
  418. } catch(Exception e){
  419. logger.error(e.getMessage(), e);
  420. res.code = 500;
  421. res.data = "导入失败";
  422. }
  423. return res;
  424. }
  425. /**
  426. * 导入客户
  427. * @param file
  428. * @param request
  429. * @param response
  430. * @return
  431. */
  432. @PostMapping(value = "/importCustomer")
  433. @ApiOperation(value = "导入客户")
  434. public BaseResponseInfo importCustomer(MultipartFile file,
  435. HttpServletRequest request, HttpServletResponse response) throws Exception{
  436. BaseResponseInfo res = new BaseResponseInfo();
  437. try {
  438. supplierService.importCustomer(file, request);
  439. res.code = 200;
  440. res.data = "导入成功";
  441. } catch(Exception e){
  442. logger.error(e.getMessage(), e);
  443. res.code = 500;
  444. res.data = "导入失败";
  445. }
  446. return res;
  447. }
  448. /**
  449. * 导入会员
  450. * @param file
  451. * @param request
  452. * @param response
  453. * @return
  454. */
  455. @PostMapping(value = "/importMember")
  456. @ApiOperation(value = "导入会员")
  457. public BaseResponseInfo importMember(MultipartFile file,
  458. HttpServletRequest request, HttpServletResponse response) throws Exception{
  459. BaseResponseInfo res = new BaseResponseInfo();
  460. try {
  461. supplierService.importMember(file, request);
  462. res.code = 200;
  463. res.data = "导入成功";
  464. } catch(Exception e){
  465. logger.error(e.getMessage(), e);
  466. res.code = 500;
  467. res.data = "导入失败";
  468. }
  469. return res;
  470. }
  471. /**
  472. * 生成excel表格
  473. * @param supplier
  474. * @param type
  475. * @param phonenum
  476. * @param telephone
  477. * @param request
  478. * @param response
  479. * @return
  480. */
  481. @GetMapping(value = "/exportExcel")
  482. public void exportExcel(@RequestParam(value = "supplier", required = false) String supplier,
  483. @RequestParam("type") String type,
  484. @RequestParam(value = "phonenum", required = false) String phonenum,
  485. @RequestParam(value = "telephone", required = false) String telephone,
  486. HttpServletRequest request, HttpServletResponse response) {
  487. try {
  488. List<Supplier> dataList = supplierService.findByAll(supplier, type, phonenum, telephone);
  489. File file = supplierService.exportExcel(dataList, type);
  490. ExcelUtils.downloadExcel(file, file.getName(), response);
  491. } catch (Exception e) {
  492. logger.error(e.getMessage(), e);
  493. }
  494. }
  495. /**
  496. * 批量设置会员当前的预付款
  497. * @param jsonObject
  498. * @param request
  499. * @return
  500. * @throws Exception
  501. */
  502. @PostMapping(value = "/batchSetAdvanceIn")
  503. @ApiOperation(value = "批量设置会员当前的预付款")
  504. public String batchSetAdvanceIn(@RequestBody JSONObject jsonObject,
  505. HttpServletRequest request)throws Exception {
  506. String ids = jsonObject.getString("ids");
  507. Map<String, Object> objectMap = new HashMap<>();
  508. int res = supplierService.batchSetAdvanceIn(ids);
  509. if(res > 0) {
  510. return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code);
  511. } else {
  512. return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code);
  513. }
  514. }
  515. }