package com.jsh.erp.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.jsh.erp.constants.BusinessConstants; import com.jsh.erp.constants.ExceptionConstants; import com.jsh.erp.datasource.entities.Depot; import com.jsh.erp.datasource.entities.DepotEx; import com.jsh.erp.exception.BusinessRunTimeException; import com.jsh.erp.service.depot.DepotService; import com.jsh.erp.service.material.MaterialService; import com.jsh.erp.service.systemConfig.SystemConfigService; import com.jsh.erp.service.userBusiness.UserBusinessService; import com.jsh.erp.utils.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.dao.DataAccessException; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.math.BigDecimal; import java.util.*; import static com.jsh.erp.utils.ResponseJsonUtil.returnJson; /** * @author ji sheng hua 752*718*920 */ @RestController @RequestMapping(value = "/depot") public class DepotController { private Logger logger = LoggerFactory.getLogger(DepotController.class); @Resource private DepotService depotService; @Resource private UserBusinessService userBusinessService; @Resource private SystemConfigService systemConfigService; @Resource private MaterialService materialService; @GetMapping(value = "/getAllList") 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){ e.printStackTrace(); res.code = 500; res.data = "获取数据失败"; } return res; } /** * 用户对应仓库显示 * @param type * @param keyId * @param request * @return */ @PostMapping(value = "/findUserDepot") public JSONArray findUserDepot(@RequestParam("UBType") String type, @RequestParam("UBKeyId") String keyId, HttpServletRequest request) throws Exception{ JSONArray arr = new JSONArray(); try { List dataList = depotService.findUserDepot(); //开始拼接json数据 JSONObject outer = new JSONObject(); outer.put("id", 1); outer.put("text", "仓库列表"); outer.put("state", "open"); //存放数据json数组 JSONArray dataArray = new JSONArray(); if (null != dataList) { for (Depot depot : dataList) { JSONObject item = new JSONObject(); item.put("id", depot.getId()); item.put("text", depot.getName()); //勾选判断1 Boolean flag = false; try { flag = userBusinessService.checkIsUserBusinessExist(type, keyId, "[" + depot.getId().toString() + "]"); } catch (Exception e) { logger.error(">>>>>>>>>>>>>>>>>设置用户对应的仓库:类型" + type + " KeyId为: " + keyId + " 存在异常!"); } if (flag == true) { item.put("checked", true); } //结束 dataArray.add(item); } } outer.put("children", dataArray); arr.add(outer); } catch (Exception e) { e.printStackTrace(); } return arr; } /** * 获取用户拥有权限的仓库列表 * @param type * @param keyId * @param request * @return * @throws Exception */ @GetMapping(value = "/findDepotByUserId") public JSONArray findDepotByUserId(@RequestParam("UBType") String type, @RequestParam("UBKeyId") String keyId, HttpServletRequest request) throws Exception{ JSONArray arr = new JSONArray(); try { List dataList = depotService.findUserDepot(); //开始拼接json数据 if (null != dataList) { boolean depotFlag = systemConfigService.getDepotFlag(); for (Depot depot : dataList) { JSONObject item = new JSONObject(); //勾选判断1 Boolean flag = false; try { flag = userBusinessService.checkIsUserBusinessExist(type, keyId, "[" + depot.getId().toString() + "]"); } catch (DataAccessException e) { logger.error(">>>>>>>>>>>>>>>>>查询用户对应的仓库:类型" + type + " KeyId为: " + keyId + " 存在异常!"); } if (!depotFlag || flag) { item.put("id", depot.getId()); item.put("depotName", depot.getName()); arr.add(item); } } } } catch (Exception e) { e.printStackTrace(); } return arr; } /** * 批量删除仓库信息 * create time: 2019/3/29 11:15 * @Param: ids * @return java.lang.Object */ @PostMapping(value = "/batchDeleteDepotByIds") public Object batchDeleteDepotByIds(@RequestParam("ids") String ids,@RequestParam(value="deleteType", required =false,defaultValue=BusinessConstants.DELETE_TYPE_NORMAL)String deleteType) throws Exception { JSONObject result = ExceptionConstants.standardSuccess(); int i=0; if(BusinessConstants.DELETE_TYPE_NORMAL.equals(deleteType)){ i= depotService.batchDeleteDepotByIdsNormal(ids); }else if(BusinessConstants.DELETE_TYPE_FORCE.equals(deleteType)){ i= depotService.batchDeleteDepotByIds(ids); }else{ logger.error("异常码[{}],异常提示[{}],参数,ids[{}],deleteType[{}]", ExceptionConstants.DELETE_REFUSED_CODE,ExceptionConstants.DELETE_REFUSED_MSG,ids,deleteType); throw new BusinessRunTimeException(ExceptionConstants.DELETE_REFUSED_CODE, ExceptionConstants.DELETE_REFUSED_MSG); } if(i<1){ logger.error("异常码[{}],异常提示[{}],参数,ids[{}]", ExceptionConstants.DEPOT_DELETE_FAILED_CODE,ExceptionConstants.DEPOT_DELETE_FAILED_MSG,ids); throw new BusinessRunTimeException(ExceptionConstants.DEPOT_DELETE_FAILED_CODE, ExceptionConstants.DEPOT_DELETE_FAILED_MSG); } return result; } @PostMapping(value = "/updateDepotIsDefault") public String updateDepotIsDefault(@RequestParam("isDefault") Boolean isDefault, @RequestParam("depotID") Long depotID, HttpServletRequest request) throws Exception{ Map objectMap = new HashMap(); int res = depotService.updateDepotIsDefault(isDefault, depotID); if(res > 0) { return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); } else { return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); } } @GetMapping(value = "/getAllListWithStock") 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.getCurrentStock(mId, depot.getId()); de.setInitStock(initStock); de.setCurrentStock(currentStock); } 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){ e.printStackTrace(); res.code = 500; res.data = "获取数据失败"; } return res; } }