| package com.xzx.gc.system.controller;  | 
|   | 
|   | 
| import cn.hutool.core.bean.BeanUtil;  | 
| import cn.hutool.core.collection.CollUtil;  | 
| import cn.hutool.core.util.StrUtil;  | 
| import com.github.pagehelper.PageHelper;  | 
| import com.github.pagehelper.PageInfo;  | 
| import com.xzx.gc.common.Result;  | 
| import com.xzx.gc.common.constant.BusinessEnum;  | 
| import com.xzx.gc.common.constant.CommonEnum;  | 
| import com.xzx.gc.common.constant.Constants;  | 
| import com.xzx.gc.common.dto.SimplePage;  | 
| import com.xzx.gc.common.dto.log.OperationAppLog;  | 
| import com.xzx.gc.common.request.BaseController;  | 
| import com.xzx.gc.entity.SysStorage;  | 
| import com.xzx.gc.model.FileExportDTO;  | 
| import com.xzx.gc.model.JsonResult;  | 
| import com.xzx.gc.model.admin.ExportParamModel;  | 
| import com.xzx.gc.model.admin.OrderModel;  | 
| import com.xzx.gc.model.admin.StorageModel;  | 
| import com.xzx.gc.model.admin.SysStorageApiModel;  | 
| import com.xzx.gc.system.mapper.SysStorageMapper;  | 
| import com.xzx.gc.system.service.CityPartnerService;  | 
| import com.xzx.gc.system.service.OtherUserService;  | 
| import com.xzx.gc.system.service.SysStorageService;  | 
| import io.swagger.annotations.Api;  | 
| import io.swagger.annotations.ApiImplicitParam;  | 
| import io.swagger.annotations.ApiImplicitParams;  | 
| import io.swagger.annotations.ApiOperation;  | 
| import lombok.extern.slf4j.Slf4j;  | 
| import org.springframework.beans.factory.annotation.Autowired;  | 
| import org.springframework.http.MediaType;  | 
| import org.springframework.validation.annotation.Validated;  | 
| import org.springframework.web.bind.annotation.PostMapping;  | 
| import org.springframework.web.bind.annotation.RequestBody;  | 
| import org.springframework.web.bind.annotation.ResponseBody;  | 
| import org.springframework.web.bind.annotation.RestController;  | 
|   | 
| import javax.servlet.http.HttpServletRequest;  | 
| import javax.servlet.http.HttpServletResponse;  | 
| import java.util.ArrayList;  | 
| import java.util.HashMap;  | 
| import java.util.List;  | 
| import java.util.Map;  | 
|   | 
| @Api(tags = "仓库管理")  | 
| @RestController  | 
| @Validated  | 
| @Slf4j  | 
| public class StorageController extends BaseController {  | 
|   | 
|   | 
|     @Autowired  | 
|     private SysStorageMapper sysStorageMapper;  | 
|   | 
|     @Autowired  | 
|     private SysStorageService sysStorageService;  | 
|   | 
|     @Autowired  | 
|     private OtherUserService otherUserService;  | 
|   | 
|     @Autowired  | 
|     private CityPartnerService cityPartnerService;  | 
|   | 
|     @ApiOperation(value = "分页查看所有仓库")  | 
|     @PostMapping(value = "/sysStorage/select")  | 
|     public Result<PageInfo<SysStorage>> select(HttpServletRequest request, @RequestBody SimplePage simplePage){  | 
|         PageHelper.startPage(simplePage.getPageNo(),simplePage.getPageSize());  | 
|   | 
|         SysStorage sysStorage=new SysStorage();  | 
|         sysStorage.setDelFlag(Constants.DEL_NOT_FLAG);  | 
|         String userId = getUserId(request);  | 
|         String partnerId = otherUserService.findById(userId).getPartnerId();  | 
|         sysStorage.setPartnerId(partnerId);  | 
|         List<SysStorage> select = sysStorageMapper.select(sysStorage);  | 
|         PageInfo<SysStorage> pageInfo=new PageInfo<>(select);  | 
|         return Result.success(pageInfo);  | 
|     }  | 
|   | 
|     /**  | 
|      * 查询仓库列表  | 
|      * @param sysStorageApiModel  | 
|      * @return  | 
|      */  | 
|     @PostMapping("/admin/front/sysStorage/querySysStorageList.do")  | 
|     @ApiOperation(value="运营管理-仓库管理", notes="test: 仅0有正确返回")  | 
|     public JsonResult<Map<String, Object>> querySysStorageList(@RequestBody SysStorageApiModel sysStorageApiModel){  | 
|         Map<String, Object> map = sysStorageService.querySysStorageList(sysStorageApiModel);  | 
|         return JsonResult.success(map);  | 
|   | 
|     }  | 
|     /**  | 
|      * 查询仓库列表  | 
|      * @param sysStorageApiModel  | 
|      * @return  | 
|      */  | 
|     @PostMapping("/admin/front/sysStorage/addSysStorageApi.json")  | 
|     @ApiOperation(value="运营管理-新增仓库", notes="test: 仅0有正确返回")  | 
|     @ApiImplicitParams({  | 
|             @ApiImplicitParam(paramType="query", name = "storageName", value = "名称", required = true, dataType = "String"),  | 
|             @ApiImplicitParam(paramType="query", name = "storageArea", value = "面积", required = true, dataType = "String"),  | 
|             @ApiImplicitParam(paramType="query", name = "detailAddress", value = "详细地址", required = true, dataType = "String"),  | 
|             @ApiImplicitParam(paramType="query", name = "partnerId", value = "合伙人ID", required = true, dataType = "String"),  | 
|             @ApiImplicitParam(paramType="query", name = "area", value = "区域Id", required = true, dataType = "String")  | 
|     })  | 
|     public JsonResult<Map<String, Object>> addSysStorageApi(@RequestBody SysStorageApiModel sysStorageApiModel,HttpServletRequest request){  | 
|         int num = sysStorageService.addSysStorageApi(sysStorageApiModel);  | 
|         Map<String,Object> map = new HashMap<>();  | 
|         map.put("code",0);  | 
|         map.put("num",num);  | 
|         OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request))  | 
|                 .methodName(Constants.ORDER_MODUL_NAME).operateAction("新增仓库-"+sysStorageApiModel.getId()).build();  | 
|         mqUtil.sendApp(build);  | 
|         return JsonResult.success(map);  | 
|     }  | 
|   | 
|     @PostMapping("/admin/front/sysStorage/updateSysStorageApi.json")  | 
|     @ApiOperation(value="运营管理-修改仓库", notes="test: 仅0有正确返回")  | 
|     @ApiImplicitParams({  | 
|             @ApiImplicitParam(paramType="query", name = "storageName", value = "名称", required = true, dataType = "String"),  | 
|             @ApiImplicitParam(paramType="query", name = "storageArea", value = "面积", required = true, dataType = "String"),  | 
|             @ApiImplicitParam(paramType="query", name = "detailAddress", value = "详细地址", required = true, dataType = "String"),  | 
|             @ApiImplicitParam(paramType="query", name = "id", value = "仓库Id", required = true, dataType = "String"),  | 
|             @ApiImplicitParam(paramType="query", name = "partnerId", value = "合伙人ID", required = true, dataType = "String"),  | 
|             @ApiImplicitParam(paramType="query", name = "area", value = "区域Id", required = true, dataType = "String")  | 
|     })  | 
|     public JsonResult<Map<String, Object>> updateSysStorageApi(@RequestBody SysStorageApiModel sysStorageApiModel, HttpServletRequest request){  | 
|         int num = sysStorageService.updateSysStorageApi(sysStorageApiModel);  | 
|         Map<String,Object> map = new HashMap<>();  | 
|         map.put("code",0);  | 
|         map.put("num",num);  | 
|         OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request))  | 
|                 .methodName(Constants.ORDER_MODUL_NAME).operateAction("修改仓库-"+sysStorageApiModel.getId()).build();  | 
|         mqUtil.sendApp(build);  | 
|         return JsonResult.success(map);  | 
|     }  | 
|   | 
|     @PostMapping("/admin/front/sysStorage/delSysStorageApi.json")  | 
|     @ApiOperation(value="运营管理-删除仓库", notes="test: 仅0有正确返回")  | 
|     @ApiImplicitParams({  | 
|             @ApiImplicitParam(paramType="query", name = "id", value = "仓库Id", required = true, dataType = "String")  | 
|     })  | 
|     public JsonResult<Map<String, Object>> delSysStorageApi(@RequestBody SysStorageApiModel sysStorageApiModel,HttpServletRequest request){  | 
|         int num = sysStorageService.delSysStorageApi(sysStorageApiModel);  | 
|         Map<String,Object> map = new HashMap<>();  | 
|         map.put("code",0);  | 
|         map.put("num",num);  | 
|         OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request))  | 
|                 .methodName(Constants.ORDER_MODUL_NAME).operateAction("删除仓库-"+sysStorageApiModel.getId()).build();  | 
|         mqUtil.sendApp(build);  | 
|         return JsonResult.success(map);  | 
|     }  | 
|   | 
|     @PostMapping( "/admin/front/sysStorage/querySysStorageApi.json")  | 
|     @ApiOperation(value="运营管理-仓库列表", notes="test: 仅0有正确返回")  | 
|     public JsonResult<List<Map<String, Object>>> querySysStorageApi(){  | 
|         List<String> partnerIds = cityPartnerService.queryPartnerByCurrent();  | 
|         List<Map<String, Object>> result = sysStorageMapper.queryAllStorage(partnerIds);  | 
|         for (Map<String, Object> map:result) {  | 
|             map.put("storagename",map.get("storageName"));  | 
|         }  | 
|         return JsonResult.success(result);  | 
|     }  | 
|   | 
|     @PostMapping("/admin/front/sysStorage/querySysStrangeList.json")  | 
|     @ApiOperation(value="查询仓库下拉列表", notes="test: 仅0有正确返回")  | 
|     public JsonResult<List<Map<String,Object>>> querySysStrangeList(){  | 
|         List<Map<String, Object>> list = sysStorageService.querySysStrangeList();  | 
|         return JsonResult.success(list);  | 
|     }  | 
|   | 
|     /**  | 
|      * 查询仓库数据  | 
|      * @param storageModel  | 
|      * @return  | 
|      */  | 
|     @PostMapping( "/admin/front/sysStorage/data/querySysStorageList.do")  | 
|     @ApiOperation(value="数据统计-仓库数据", notes="test: 仅0有正确返回")  | 
|     public JsonResult<Map<String, Object>> querySysStorageList(@RequestBody StorageModel storageModel){  | 
|         Map<String,Object> resultMap = sysStorageService.querySysStorageListData(storageModel);  | 
|         return JsonResult.success(resultMap);  | 
|     }  | 
|   | 
|     /**  | 
|      * 查询仓库列表  | 
|      * @param storageModel  | 
|      * @return  | 
|      */  | 
|     @PostMapping( "/admin/front/sysStorage/data/querySysStorageDetail.json")  | 
|     @ApiOperation(value="数据统计-仓库列表", notes="test: 仅0有正确返回")  | 
|     @ApiImplicitParams({  | 
|             @ApiImplicitParam(paramType="query", name = "timeType", value = "时间类型(week(周),month(月))", required = true, dataType = "String"),  | 
|             @ApiImplicitParam(paramType="query", name = "sysStorageId", value = "仓库Id(上一个页面的id)", required = true, dataType = "String"),  | 
|             @ApiImplicitParam(paramType="query", name = "imageType", value = "统计图的时间类型(具体类别的图,week(周),month(月))", required = true, dataType = "String")  | 
|   | 
|     })  | 
|     public JsonResult<Map<String, Object>> querySysStorageDetail(@RequestBody StorageModel storageModel){  | 
|         Map<String,Object> resultMap = sysStorageService.querySysStorageDetail(storageModel);  | 
|         return JsonResult.success(resultMap);  | 
|     }  | 
|   | 
|     @ApiOperation(value = "仓库导出",produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)  | 
|     @PostMapping(value = "/admin/front/sysStorage/export")  | 
|     public void fileExport(@RequestBody ExportParamModel exportParamModel, HttpServletRequest request, HttpServletResponse response) {  | 
|         List<List<String>> rows = new ArrayList<>();  | 
|         //标题  | 
|         List<String> header = CollUtil.newArrayList("所属地区", "仓库名称", "累计订单量", "总入库重量(吨)", "日均入库重量(吨)", "总入库金额(万元)", "日均入库金额(万元)");  | 
|         rows.add(header);  | 
|   | 
|         //组装数据  | 
|         StorageModel storageModel = new StorageModel(exportParamModel);  | 
|         Map<String, Object> result = sysStorageService.querySysStorageListData(storageModel);  | 
|         List<Map<String,Object>> storageApiModelList = (List<Map<String,Object>>) result.get("data");  | 
|         if (CollUtil.isNotEmpty(storageApiModelList)) {  | 
|             for(Map<String,Object> m : storageApiModelList){  | 
|                 List<String> list = new ArrayList<>();  | 
|                 list.add(m.get("areaName").toString());  | 
|                 if(null!=m.get("delFlag")){  | 
|                     if(m.get("delFlag").toString().equals("1")){  | 
|                         m.put("storageName",m.get("storageName").toString()+"(已删除)");  | 
|                     }  | 
|                 }  | 
|                 list.add(m.get("storageName").toString());  | 
|                 list.add(m.get("orderNum").toString());  | 
|                 list.add(m.get("storageWeight").toString());  | 
|                 list.add(m.get("dayStorageWeight").toString());  | 
|                 list.add(m.get("storageMoney").toString());  | 
|                 list.add(m.get("dayStorageMoney").toString());  | 
|                 rows.add(list);  | 
|             }  | 
|         }  | 
|   | 
|         //导出  | 
|         export(rows,response);  | 
|   | 
|         OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request))  | 
|                 .methodName(Constants.SYS_MODUL_NAME).operateAction("仓库导出").build();  | 
|         mqUtil.sendApp(build);  | 
|     }  | 
| }  |