package com.jsh.erp.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.jsh.erp.base.BaseController; import com.jsh.erp.base.TableDataInfo; import com.jsh.erp.datasource.entities.Depot; import com.jsh.erp.datasource.entities.DepotEx; import com.jsh.erp.datasource.entities.MaterialInitialStock; import com.jsh.erp.service.DepotService; import com.jsh.erp.service.MaterialExtendService; import com.jsh.erp.service.MaterialService; import com.jsh.erp.service.UserBusinessService; import com.jsh.erp.utils.BaseResponseInfo; import com.jsh.erp.utils.Constants; import com.jsh.erp.utils.ErpInfo; import com.jsh.erp.utils.StringUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import static com.jsh.erp.utils.ResponseJsonUtil.returnJson; import static com.jsh.erp.utils.ResponseJsonUtil.returnStr; /** * @author ji sheng hua 752*718*920 */ @RestController @RequestMapping(value = "/depot") @Api(tags = {"仓库管理"}) public class DepotController extends BaseController { private Logger logger = LoggerFactory.getLogger(DepotController.class); @Resource private DepotService depotService; @Resource private UserBusinessService userBusinessService; @Resource private MaterialService materialService; @Resource private MaterialExtendService materialExtendService; @GetMapping(value = "/info") @ApiOperation(value = "根据id获取信息") public String getList(@RequestParam("id") Long id, HttpServletRequest request) throws Exception { Depot depot = depotService.getDepot(id); Map objectMap = new HashMap<>(); if(depot != null) { objectMap.put("info", depot); return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); } else { return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); } } @GetMapping(value = "/list") @ApiOperation(value = "获取信息列表") public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search, HttpServletRequest request)throws Exception { String name = StringUtil.getInfo(search, "name"); Integer type = StringUtil.parseInteger(StringUtil.getInfo(search, "type")); String remark = StringUtil.getInfo(search, "remark"); List list = depotService.select(name, type, remark); return getDataTable(list); } @PostMapping(value = "/add") @ApiOperation(value = "新增") public String addResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { Map objectMap = new HashMap<>(); int insert = depotService.insertDepot(obj, request); return returnStr(objectMap, insert); } @PutMapping(value = "/update") @ApiOperation(value = "修改") public String updateResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { Map objectMap = new HashMap<>(); int update = depotService.updateDepot(obj, request); return returnStr(objectMap, update); } @DeleteMapping(value = "/delete") @ApiOperation(value = "删除") public String deleteResource(@RequestParam("id") Long id, HttpServletRequest request)throws Exception { Map objectMap = new HashMap<>(); int delete = depotService.deleteDepot(id, request); return returnStr(objectMap, delete); } @DeleteMapping(value = "/deleteBatch") @ApiOperation(value = "批量删除") public String batchDeleteResource(@RequestParam("ids") String ids, HttpServletRequest request)throws Exception { Map objectMap = new HashMap<>(); int delete = depotService.batchDeleteDepot(ids, request); return returnStr(objectMap, delete); } @GetMapping(value = "/checkIsNameExist") @ApiOperation(value = "检查名称是否存在") public String checkIsNameExist(@RequestParam Long id, @RequestParam(value ="name", required = false) String name, HttpServletRequest request)throws Exception { Map objectMap = new HashMap<>(); int exist = depotService.checkIsNameExist(id, name); if(exist > 0) { objectMap.put("status", true); } else { objectMap.put("status", false); } return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); } /** * 仓库列表 * @param request * @return * @throws Exception */ @GetMapping(value = "/getAllList") @ApiOperation(value = "仓库列表") public BaseResponseInfo getAllList(HttpServletRequest request) throws Exception{ BaseResponseInfo res = new BaseResponseInfo(); try { List depotList = depotService.getAllList(); res.code = 200; res.data = depotList; } catch(Exception e){ logger.error(e.getMessage(), e); res.code = 500; res.data = "获取数据失败"; } return res; } /** * 用户对应仓库显示 * @param type * @param keyId * @param request * @return */ @GetMapping(value = "/findUserDepot") @ApiOperation(value = "用户对应仓库显示") public JSONArray findUserDepot(@RequestParam("UBType") String type, @RequestParam("UBKeyId") String keyId, HttpServletRequest request) throws Exception{ JSONArray arr = new JSONArray(); try { //获取权限信息 String ubValue = userBusinessService.getUBValueByTypeAndKeyId(type, keyId); List dataList = depotService.findUserDepot(); //开始拼接json数据 JSONObject outer = new JSONObject(); outer.put("id", 0); outer.put("key", 0); outer.put("value", 0); outer.put("title", "仓库列表"); outer.put("attributes", "仓库列表"); //存放数据json数组 JSONArray dataArray = new JSONArray(); if (null != dataList) { for (Depot depot : dataList) { JSONObject item = new JSONObject(); item.put("id", depot.getId()); item.put("key", depot.getId()); item.put("value", depot.getId()); item.put("title", depot.getName()); item.put("attributes", depot.getName()); Boolean flag = ubValue.contains("[" + depot.getId().toString() + "]"); if (flag) { item.put("checked", true); } dataArray.add(item); } } outer.put("children", dataArray); arr.add(outer); } catch (Exception e) { logger.error(e.getMessage(), e); } return arr; } /** * 获取当前用户拥有权限的仓库列表 * @param request * @return * @throws Exception */ @GetMapping(value = "/findDepotByCurrentUser") @ApiOperation(value = "获取当前用户拥有权限的仓库列表") public BaseResponseInfo findDepotByCurrentUser(HttpServletRequest request) throws Exception{ BaseResponseInfo res = new BaseResponseInfo(); try { JSONArray arr = depotService.findDepotByCurrentUser(); res.code = 200; res.data = arr; } catch (Exception e) { logger.error(e.getMessage(), e); res.code = 500; res.data = "获取数据失败"; } return res; } /** * 更新默认仓库 * @param object * @param request * @return * @throws Exception */ @PostMapping(value = "/updateIsDefault") @ApiOperation(value = "更新默认仓库") public String updateIsDefault(@RequestBody JSONObject object, HttpServletRequest request) throws Exception{ Long depotId = object.getLong("id"); Map objectMap = new HashMap<>(); int res = depotService.updateIsDefault(depotId); if(res > 0) { return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); } else { return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); } } /** * 仓库列表-带库存 * @param mId * @param request * @return */ @GetMapping(value = "/getAllListWithStock") @ApiOperation(value = "仓库列表-带库存") public BaseResponseInfo getAllList(@RequestParam("mId") Long mId, HttpServletRequest request) { BaseResponseInfo res = new BaseResponseInfo(); try { List list = depotService.getAllList(); List depotList = new ArrayList(); for(Depot depot: list) { DepotEx de = new DepotEx(); if(mId!=0) { BigDecimal initStock = materialService.getInitStock(mId, depot.getId()); BigDecimal currentStock = materialService.getCurrentStockByMaterialIdAndDepotId(mId, depot.getId()); de.setInitStock(initStock); de.setCurrentStock(currentStock == null ? BigDecimal.ZERO : currentStock); MaterialInitialStock materialInitialStock = materialService.getSafeStock(mId, depot.getId()); de.setLowSafeStock(materialInitialStock.getLowSafeStock()); de.setHighSafeStock(materialInitialStock.getHighSafeStock()); de.setPosition(materialInitialStock.getPosition()); } else { de.setInitStock(BigDecimal.ZERO); de.setCurrentStock(BigDecimal.ZERO); } de.setId(depot.getId()); de.setName(depot.getName()); depotList.add(de); } res.code = 200; res.data = depotList; } catch(Exception e){ logger.error(e.getMessage(), e); res.code = 500; res.data = "获取数据失败"; } return res; } /** * 批量设置状态-启用或者禁用 * @param jsonObject * @param request * @return */ @PostMapping(value = "/batchSetStatus") @ApiOperation(value = "批量设置状态") public String batchSetStatus(@RequestBody JSONObject jsonObject, HttpServletRequest request)throws Exception { Boolean status = jsonObject.getBoolean("status"); String ids = jsonObject.getString("ids"); Map objectMap = new HashMap<>(); int res = depotService.batchSetStatus(status, ids); if(res > 0) { return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); } else { return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); } } }