package com.zy.asrs.controller; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.core.annotations.ManagerAuth; import com.core.common.Cools; import com.core.common.DateUtils; import com.core.common.R; import com.zy.asrs.entity.HalfBarcode; import com.zy.asrs.entity.MatBarcode; import com.zy.asrs.mapper.MatBarcodeMapper; import com.zy.asrs.service.HalfBarcodeService; import com.zy.asrs.service.MatBarcodeService; import com.zy.common.web.BaseController; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @RestController @RequestMapping public class HalfBarcodeController extends BaseController { @Autowired private HalfBarcodeService halfBarcodeService; @Autowired private MatBarcodeService matBarcodeService; /* * 物料托盘绑定分页查询 * */ // @RequestMapping(value = "/halfBarcode/list/auth") // @ManagerAuth // public R list(@RequestParam(defaultValue = "1")Integer curr, // @RequestParam(defaultValue = "10")Integer limit, // @RequestParam(required = false)String orderByField, // @RequestParam(required = false)String orderByType, // @RequestParam Map param) { // excludeTrash(param); // EntityWrapper wrapper = new EntityWrapper<>(); // convert(param, wrapper); // if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} // else { // wrapper.orderBy("modi_time", false); // } // return R.ok(halfBarcodeService.selectPage(new Page<>(curr, limit), wrapper)); // } @RequestMapping(value = "/halfBarcode/list/auth") // @ManagerAuth public R list2(@RequestParam(defaultValue = "1") Integer curr, @RequestParam(defaultValue = "10") Integer limit, @RequestParam(required = false) String orderByField, @RequestParam(required = false) String orderByType, @RequestParam Map param) { excludeTrash(param); HalfBarcode halfBarcode = JSONObject.parseObject(JSON.toJSONString(param),HalfBarcode.class); Page page1 = new Page<>(curr, limit); Page page = halfBarcodeService.getPage(halfBarcode, page1); for (HalfBarcode halfBarcode1 : page.getRecords()) { List matBarcodes = matBarcodeService .selectList(new EntityWrapper().eq("zpallet", halfBarcode1.getZpallet())); // 计算所有specs字段中*后面的数字之和 int specsSum = 0; for (MatBarcode matBarcode : matBarcodes) { String specs = matBarcode.getSpecs(); if (specs != null && specs.contains("*")) { try { String afterStar = specs.substring(specs.indexOf("*") + 1); specsSum += Integer.parseInt(afterStar.trim()); } catch (NumberFormatException e) { // 忽略无法解析的specs } } } int thickness = 0; if (Integer.parseInt(halfBarcode1.getZpallet().substring(0,1))==6){ thickness = 2650; }else if(Integer.parseInt(halfBarcode1.getZpallet().substring(0,1))==7){ thickness = 1750; }else if(Integer.parseInt(halfBarcode1.getZpallet().substring(0,1))==8){ thickness = 800; } halfBarcode1.setPrice(thickness - specsSum); } return R.ok(page); } private void convert(Map map, EntityWrapper wrapper) { for (Map.Entry entry : map.entrySet()) { String val = String.valueOf(entry.getValue()); if (val.contains(RANGE_TIME_LINK)) { String[] dates = val.split(RANGE_TIME_LINK); wrapper.ge(entry.getKey(), DateUtils.convert(dates[0])); wrapper.le(entry.getKey(), DateUtils.convert(dates[1])); } else { if (!entry.getKey().equals("price")) { wrapper.like(entry.getKey(), val); } else { wrapper.ge(entry.getKey(), val); } } } } }