package com.thhy.materials.modules.biz.materialsplan.controller; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.nacos.api.utils.StringUtils; import com.github.pagehelper.PageInfo; import com.thhy.general.common.BasicResult; import com.thhy.general.common.BasicStatus; import com.thhy.general.config.GlobalConfig; import com.thhy.general.exception.BasicException; import com.thhy.general.utils.ExcelUtils; import com.thhy.general.utils.PagingUtils; import com.thhy.general.utils.TitleField; import com.thhy.materials.modules.biz.materialsplan.entity.*; import com.thhy.materials.modules.biz.materialsplan.service.RsbMaterialPlanService; import org.redisson.api.RBucket; import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @author zhang_xiao_bo * @since 2023-04-18 10:26:11 */ @RestController @RequestMapping("rsbMaterialPlan") public class RsbMaterialPlanController { @Autowired private RsbMaterialPlanService rsbMaterialPlanService; @Autowired private RedissonClient redissonClient; @Autowired private GlobalConfig globalConfig; @RequestMapping("findList") public BasicResult findList(@RequestBody(required = false) RsbMaterialPlan rsbMaterialPlan,HttpServletRequest req){ List> headers = rsbMaterialPlanService.TableHeader(); for(int i=0;i map = headers.get(i); map.put("fieldName","field"+i); } PagingUtils.setPageParam(req); List> rsbMaterialPlanList = rsbMaterialPlanService.findList(rsbMaterialPlan); PageInfo> pageInfo = new PageInfo<>(rsbMaterialPlanList); for(HashMap map : rsbMaterialPlanList){ String materialValue = rsbMaterialPlanService.queryGroup(map.get("id").toString()); String[] valueArray = materialValue.split(","); for(int i=0;i map = new HashMap<>(); map.put("tableHeader",headers); map.put("pageInfo",pageInfo); return BasicResult.success(map); } @RequestMapping("export") public void export(String authcode, HttpServletResponse resp){ List list = new ArrayList<>(); list.add(new TitleField("序号","seq")); list.add(new TitleField("项目名称","proName")); list.add(new TitleField("尺寸","sizeName")); list.add(new TitleField("配筋","reinforcementName")); list.add(new TitleField("块号","blockNumName")); List> headers = rsbMaterialPlanService.TableHeader(); for(int i=0;i map = headers.get(i); map.put("fieldName","field"+i); list.add(new TitleField(map.get("headName").toString(),"field"+i)); } list.add(new TitleField("创建时间","createTime")); list.add(new TitleField("创建人","createUserName")); RBucket rBucket = redissonClient.getBucket(globalConfig.getFilePreKey()+":authcode:"+authcode); String param = rBucket.getAndDelete(); if(StringUtils.isEmpty(param)){ throw new BasicException(BasicStatus.TOKEN_IS_NULL); } JSONObject jsonObject = JSON.parseObject(param); RsbMaterialPlan rsbMaterialPlan = JSON.toJavaObject(jsonObject,RsbMaterialPlan.class); List> rsbMaterialPlanList = rsbMaterialPlanService.findListForExport(rsbMaterialPlan,jsonObject.getString("token")); for(HashMap map : rsbMaterialPlanList){ String materialValue = rsbMaterialPlanService.queryGroup(map.get("id").toString()); String[] valueArray = materialValue.split(","); for(int i=0;i rsbMaterialPlanList = rsbMaterialPlanService.info(rsbMaterialPlanDto); return BasicResult.success(rsbMaterialPlanList); } /** @RequestMapping("update") public BasicResult update(@RequestBody RsbMaterialPlan rsbMaterialPlan){ rsbMaterialPlanService.update(rsbMaterialPlan); return BasicResult.success(); }**/ @RequestMapping("delete") public BasicResult delete(@RequestBody RsbMaterialPlan rsbMaterialPlan){ rsbMaterialPlanService.delete(rsbMaterialPlan.getId()); return BasicResult.success(); } @RequestMapping("RsbStat") public BasicResult RsbStat(@RequestBody RsbStatDto rsbStatDto){ Map map = rsbMaterialPlanService.RsbStat(rsbStatDto); return BasicResult.success(map); } @RequestMapping("statExport") public void statExport(String authcode,HttpServletResponse response){ RBucket rBucket = redissonClient.getBucket(globalConfig.getFilePreKey()+":authcode:"+authcode); String param = rBucket.getAndDelete(); if(StringUtils.isEmpty(param)){ throw new BasicException(BasicStatus.TOKEN_IS_NULL); } JSONObject jsonObject = JSON.parseObject(param); RsbStatDto rsbStatDto = JSON.toJavaObject(jsonObject,RsbStatDto.class); rsbMaterialPlanService.statExport(rsbStatDto,jsonObject.getString("token"),response); } }