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> 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 select = sysStorageMapper.select(sysStorage); PageInfo pageInfo=new PageInfo<>(select); return Result.success(pageInfo); } /** * 查询仓库列表 * @param sysStorageApiModel * @return */ @PostMapping("/admin/front/sysStorage/querySysStorageList.do") @ApiOperation(value="运营管理-仓库管理", notes="test: 仅0有正确返回") public JsonResult> querySysStorageList(@RequestBody SysStorageApiModel sysStorageApiModel){ Map 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> addSysStorageApi(@RequestBody SysStorageApiModel sysStorageApiModel,HttpServletRequest request){ int num = sysStorageService.addSysStorageApi(sysStorageApiModel); Map 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> updateSysStorageApi(@RequestBody SysStorageApiModel sysStorageApiModel, HttpServletRequest request){ int num = sysStorageService.updateSysStorageApi(sysStorageApiModel); Map 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> delSysStorageApi(@RequestBody SysStorageApiModel sysStorageApiModel,HttpServletRequest request){ int num = sysStorageService.delSysStorageApi(sysStorageApiModel); Map 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>> querySysStorageApi(){ List partnerIds = cityPartnerService.queryPartnerByCurrent(); List> result = sysStorageMapper.queryAllStorage(partnerIds); for (Map 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>> querySysStrangeList(){ List> list = sysStorageService.querySysStrangeList(); return JsonResult.success(list); } /** * 查询仓库数据 * @param storageModel * @return */ @PostMapping( "/admin/front/sysStorage/data/querySysStorageList.do") @ApiOperation(value="数据统计-仓库数据", notes="test: 仅0有正确返回") public JsonResult> querySysStorageList(@RequestBody StorageModel storageModel){ Map 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> querySysStorageDetail(@RequestBody StorageModel storageModel){ Map 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> rows = new ArrayList<>(); //标题 List header = CollUtil.newArrayList("所属地区", "仓库名称", "累计订单量", "总入库重量(吨)", "日均入库重量(吨)", "总入库金额(万元)", "日均入库金额(万元)"); rows.add(header); //组装数据 StorageModel storageModel = new StorageModel(exportParamModel); Map result = sysStorageService.querySysStorageListData(storageModel); List> storageApiModelList = (List>) result.get("data"); if (CollUtil.isNotEmpty(storageApiModelList)) { for(Map m : storageApiModelList){ List 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); } }