|  |  |  | 
|---|
|  |  |  | package com.zy.asrs.controller; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.alibaba.excel.EasyExcel; | 
|---|
|  |  |  | import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; | 
|---|
|  |  |  | import com.alibaba.fastjson.JSONArray; | 
|---|
|  |  |  | 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.ManLocDetl; | 
|---|
|  |  |  | import com.zy.asrs.entity.*; | 
|---|
|  |  |  | import com.zy.asrs.entity.param.LocDetlAdjustParam; | 
|---|
|  |  |  | import com.zy.asrs.service.LocCheckService; | 
|---|
|  |  |  | import com.zy.asrs.service.LocDetlService; | 
|---|
|  |  |  | import com.zy.asrs.service.ManLocDetlService; | 
|---|
|  |  |  | import com.zy.asrs.service.MatService; | 
|---|
|  |  |  | import com.zy.common.web.BaseController; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
|---|
|  |  |  | import org.springframework.transaction.annotation.Transactional; | 
|---|
|  |  |  | import org.springframework.web.bind.annotation.RequestBody; | 
|---|
|  |  |  | import org.springframework.web.bind.annotation.RequestMapping; | 
|---|
|  |  |  | import org.springframework.web.bind.annotation.RequestParam; | 
|---|
|  |  |  | import org.springframework.web.bind.annotation.RestController; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import javax.servlet.http.HttpServletResponse; | 
|---|
|  |  |  | import java.io.IOException; | 
|---|
|  |  |  | import java.net.URLEncoder; | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  | import java.util.Map; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RestController | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private ManLocDetlService manLocDetlService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private LocDetlService locDetlService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private MatService matService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private LocCheckService locCheckService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/manlocDetl/orderNo") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | public R locNoList(@RequestParam String orderNo){ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (Cools.isEmpty(orderNo)){ | 
|---|
|  |  |  | return R.error("无数据"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<LocCheck> list = locCheckService.selectList(new EntityWrapper<LocCheck>().eq("order_no", orderNo)); | 
|---|
|  |  |  | return R.ok(list); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/manLocDetl/list/auth") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | 
|---|
|  |  |  | param.remove("update_time"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.ok(manLocDetlService.getPage(toPage(curr, limit, param, ManLocDetl.class))); | 
|---|
|  |  |  | Page<ManLocDetl> page = manLocDetlService.getPage(toPage(curr, limit, param, ManLocDetl.class)); | 
|---|
|  |  |  | return R.ok(page); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | return R.ok(outPage); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping("/manLocDetl/adjust/start") | 
|---|
|  |  |  | @ManagerAuth(memo = "库存调整") | 
|---|
|  |  |  | public R locDetlAdjustStart(@RequestBody LocDetlAdjustParam param) { | 
|---|
|  |  |  | manLocDetlService.adjustLocDetl(param, getUserId(),getUser()); | 
|---|
|  |  |  | return R.ok("库存调整成功"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/manLocDetl/asrsAndSaas/list") | 
|---|
|  |  |  | @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(required = false)String condition, | 
|---|
|  |  |  | @RequestParam Map<String, Object> param){ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Page<ManLocDetl> manLocDetlPage = toPage(curr, limit, param, ManLocDetl.class); | 
|---|
|  |  |  | Page<ManLocDetl> all = manLocDetlService.selectAllPage(manLocDetlPage); | 
|---|
|  |  |  | return R.ok().add(all); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){ | 
|---|
|  |  |  | for (Map.Entry<String, Object> 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("locNo")) { | 
|---|
|  |  |  | wrapper.eq("loc_no", String.valueOf(entry.getValue())); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | wrapper.like(entry.getKey(), String.valueOf(entry.getValue())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/manlocDetl/statis/export") | 
|---|
|  |  |  | //    @ManagerAuth | 
|---|
|  |  |  | public void statisExport(HttpServletResponse response) throws IOException { | 
|---|
|  |  |  | List<LocDetlWarningDTO> list = manLocDetlService.selectAllWarning(); | 
|---|
|  |  |  | for (LocDetlWarningDTO locDetl : list) { | 
|---|
|  |  |  | Mat mat = matService.selectByMatnr(locDetl.getMatnr()); | 
|---|
|  |  |  | if (mat != null) { | 
|---|
|  |  |  | locDetl.sync(mat); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | response.setContentType("application/vnd.ms-excel"); | 
|---|
|  |  |  | response.setCharacterEncoding("utf-8"); | 
|---|
|  |  |  | String fileName = URLEncoder.encode("库存预警明细", "UTF-8"); | 
|---|
|  |  |  | response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); | 
|---|
|  |  |  | EasyExcel.write(response.getOutputStream(), LocDetlWarningDTO.class) | 
|---|
|  |  |  | .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) | 
|---|
|  |  |  | .sheet("表1") | 
|---|
|  |  |  | .doWrite(list); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //    @RequestMapping(value = "/manlocDetl/updateStockFreeze/auth") | 
|---|
|  |  |  | //    @ManagerAuth(memo = "库位冻结") | 
|---|
|  |  |  | //    public R updateStockFreeze(ManLocDetl manLocDetl){ | 
|---|
|  |  |  | //        if (Cools.isEmpty(manLocDetl) || null==manLocDetl.getMatnr()){ | 
|---|
|  |  |  | //            return R.error(); | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | //        manLocDetlService.updateStockFreeze(manLocDetl.getMatnr(), manLocDetl.getLocNo(), manLocDetl.getStockFreeze()); | 
|---|
|  |  |  | //        return R.ok(); | 
|---|
|  |  |  | //    } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/manlocDetl/updateStockFreeze") | 
|---|
|  |  |  | @ManagerAuth(memo = "库位冻结") | 
|---|
|  |  |  | public R updateStockFreeze(@RequestParam String param){ | 
|---|
|  |  |  | List<ManLocDetl> list = JSONArray.parseArray(param, ManLocDetl.class); | 
|---|
|  |  |  | if (Cools.isEmpty(list)){ | 
|---|
|  |  |  | return R.error("无数据"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for (ManLocDetl manLocDetl : list){ | 
|---|
|  |  |  | manLocDetl.setStockFreeze(0); | 
|---|
|  |  |  | if (manLocDetlService.updateStockFreeze(manLocDetl.getMatnr(), manLocDetl.getLocNo(), manLocDetl.getStockFreeze()) != 1){ | 
|---|
|  |  |  | return R.error(manLocDetl.getMatnr()+"冻结失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.ok("冻结成功"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/manlocDetl/updateStockDisFreeze") | 
|---|
|  |  |  | @ManagerAuth(memo = "库位解冻") | 
|---|
|  |  |  | public R updateStockDisFreeze(@RequestParam String param){ | 
|---|
|  |  |  | List<ManLocDetl> list = JSONArray.parseArray(param, ManLocDetl.class); | 
|---|
|  |  |  | if (Cools.isEmpty(list)){ | 
|---|
|  |  |  | return R.error("无数据"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for (ManLocDetl manLocDetl : list){ | 
|---|
|  |  |  | manLocDetl.setStockFreeze(1); | 
|---|
|  |  |  | if (manLocDetlService.updateStockFreeze(manLocDetl.getMatnr(), manLocDetl.getLocNo(), manLocDetl.getStockFreeze()) != 1){ | 
|---|
|  |  |  | return R.error(manLocDetl.getMatnr()+"解除冻结失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.ok("解除冻结成功"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|