package com.thhy.materials.modules.biz.mixmateria.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.RsbMaterialDict; import com.thhy.materials.modules.biz.mixmateria.entity.MixDto; import com.thhy.materials.modules.biz.mixmateria.entity.MixMaterial; import com.thhy.materials.modules.biz.mixmateria.entity.MixMaterialInfo; import com.thhy.materials.modules.biz.mixmateria.service.MixMaterialService; 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.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.*; /** * @author zhang_xiao_bo * @since 2023-05-16 15:18:52 */ @RestController @RequestMapping("mixMaterial") public class MixMaterialController { @Autowired private MixMaterialService mixMaterialService; @Autowired private RedissonClient redissonClient; @Autowired private GlobalConfig globalConfig; @RequestMapping("findList") public BasicResult findList(@RequestBody(required = false) MixDto mixDto,HttpServletRequest req){ Map map = new HashMap<>(); List> tableHeader = mixMaterialService.tableHeader(); PagingUtils.setPageParam(req); List> mixMaterialList = mixMaterialService.findList(mixDto); PageInfo> pageInfo = new PageInfo<>(mixMaterialList); map.put("tableHeader",tableHeader); map.put("pageInfo",pageInfo); return BasicResult.success(map); } @RequestMapping("mixTotalCount") public BasicResult mixTotalCount(){ List infoList = mixMaterialService.mixTotalCount(); return BasicResult.success(infoList); } @RequestMapping("addMixMaterial") public BasicResult addMixMaterial(@RequestBody MixMaterial mixMaterial){ mixMaterialService.addMixMaterial(mixMaterial); return BasicResult.success(); } @RequestMapping("info") public BasicResult info(@RequestBody MixDto mixDto){ List rsbMaterialPlanList = mixMaterialService.info(mixDto); return BasicResult.success(rsbMaterialPlanList); } /** @RequestMapping("update") public BasicResult update(@RequestBody MixMaterial mixMaterial){ mixMaterialService.update(mixMaterial); return BasicResult.success(); }**/ @RequestMapping("delete") public BasicResult delete(@RequestBody MixMaterial mixMaterial){ mixMaterialService.delete(mixMaterial.getId()); return BasicResult.success(); } @RequestMapping("export") public void export(String authcode, HttpServletResponse resp){ List list = new ArrayList<>(); list.add(new TitleField("序号","seq")); list.add(new TitleField("出砼时间","outTime")); list.add(new TitleField("盘方量","size")); List> headers = mixMaterialService.tableHeader(); for(int i=0;i map = headers.get(i); map.put("fieldName","field"+i); list.add(new TitleField(map.get("title").toString(),"field"+i)); } 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); MixDto mixDto = JSON.toJavaObject(jsonObject,MixDto.class); List> mapList = mixMaterialService.findListForExport(mixDto,jsonObject.getString("token")); for(HashMap map : mapList){ String materialValue = mixMaterialService.queryGroup(map.get("id").toString()); String[] valueArray = materialValue.split(","); for(int i=0;i