Merge branch 'phyzwms2' into phyzasrs-erp
# Conflicts:
# src/main/resources/application.yml
| | |
| | | <dependency> |
| | | <groupId>com.alibaba</groupId> |
| | | <artifactId>easyexcel</artifactId> |
| | | <version>2.2.6</version> |
| | | <version>3.1.0</version> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>org.projectlombok</groupId> |
| | |
| | | agvLocMastByContainerCode.setBarcode(barcode1); |
| | | agvLocMastService.updateById(agvLocMastByContainerCode); |
| | | } |
| | | // 保存调整记录 |
| | | AdjDetl adjDetl = new AdjDetl(); |
| | | |
| | | |
| | | return R.ok("维护成功"); |
| | | } |
| | |
| | | Date now = new Date(); |
| | | List<HashMap<String,String>> dbList = (List<HashMap<String, String>>) params.get("dbList"); |
| | | params.get("dbList"); |
| | | String orderNo = params.get("orderNo").toString(); |
| | | for (HashMap<String, String> map : dbList) { |
| | | String locNo = map.get("locNo"); |
| | | String barcode = map.get("suppCode"); |
| | |
| | | // 更新订单 |
| | | // 先查询库订单明细 所属的订单 |
| | | |
| | | OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("source",36).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode())); |
| | | OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no",orderNo).eq("source",17).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode())); |
| | | orderDetl.setQty(orderDetl.getQty() + agvLocDetl.getAnfme()); |
| | | if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("source",36).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()))){ |
| | | if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("order_no",orderNo).eq("source",17).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()))){ |
| | | throw new CoolException("修改订单明细失败,请联系管理员"+agvLocDetl.getOrderNo()+agvLocDetl.getMatnr()); |
| | | } |
| | | // 更新订单状态 |
| | | Order order = orderService.selectByNo(orderNo); |
| | | Long settle = order.getSettle(); |
| | | if (settle == 1L) { |
| | | if (!orderService.updateSettle(order.getId(),2L,getUserId())) { |
| | | throw new CoolException("订单号:{"+order.getOrderNo()+"}更新订单状态:1-->2 失败!(半成品调拨单任务)" ); |
| | | } |
| | | } |
| | | } |
| | | // 更新源库位 |
| | | AgvLocMast locMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", locNo)); |
| | |
| | | List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakout", 1)); |
| | | List<Long> docIds = new ArrayList<>(); |
| | | for (DocType pakin : pakins) { |
| | | if (pakin.getDocId() == 36) { |
| | | if (pakin.getDocId() == 17) { |
| | | docIds.add(pakin.getDocId()); |
| | | } |
| | | } |
| | |
| | | throw new CoolException("生成单据主档失败,请重新导入!"); |
| | | } |
| | | }else { |
| | | order2.setSettle(order.getSettle() == 1L ? 1L : 2L ); |
| | | order2.setSettle(order2.getSettle() == 1L ? 1L : 2L ); |
| | | orderService.updateById(order2); |
| | | } |
| | | |
| | |
| | | throw new CoolException("生成单据主档失败,请重新导入!"); |
| | | } |
| | | }else { |
| | | order3.setSettle(order.getSettle() == 1L ? 1L : 2L ); |
| | | order3.setSettle(order3.getSettle() == 1L ? 1L : 2L ); |
| | | orderService.updateById(order3); |
| | | } |
| | | |
| | |
| | | List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakout", 1)); |
| | | List<Long> docIds = new ArrayList<>(); |
| | | for (DocType pakin : pakins) { |
| | | if (pakin.getDocId() != 33 && pakin.getDocId() != 34 && pakin.getDocId() != 35) { |
| | | if (pakin.getDocId() != 17 && pakin.getDocId() != 33 && pakin.getDocId() != 34 && pakin.getDocId() != 35) { |
| | | docIds.add(pakin.getDocId()); |
| | | } |
| | | } |
| | | wrapper.ne("source",19); |
| | | wrapper.in("source",docIds); |
| | | Page<OrderDetl> page = orderDetlService.selectPage(new Page<>(curr, limit), wrapper); |
| | | for (OrderDetl record : page.getRecords()) { |
| | | Double sumAnfme = agvLocDetlService.getSumAnfme(record.getMatnr(), record.getThreeCode()); |
New file |
| | |
| | | package com.zy.asrs.controller; |
| | | |
| | | import com.alibaba.excel.EasyExcel; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.baomidou.mybatisplus.plugins.Page; |
| | | import com.core.common.Cools; |
| | | import com.core.common.DateUtils; |
| | | import com.core.common.R; |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.mapper.ReportQueryMapper; |
| | | import com.zy.asrs.service.AgvWrkMastLogService; |
| | | import com.zy.common.web.BaseController; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import javax.xml.soap.SAAJResult; |
| | | import java.io.IOException; |
| | | import java.net.URLEncoder; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | @RestController |
| | | @RequestMapping("/report/download") |
| | | public class ReportDownloadController extends BaseController { |
| | | |
| | | |
| | | @Autowired |
| | | private ReportQueryMapper reportQueryMapper; |
| | | |
| | | |
| | | @Autowired |
| | | private AgvWrkMastLogService wrkMastLogService; |
| | | |
| | | |
| | | /** |
| | | * 文件下载并且失败的时候返回json(默认失败了会返回一个有部分数据的Excel) |
| | | * 日入库汇总查询 |
| | | * |
| | | * @since 2.1.1 |
| | | */ |
| | | @GetMapping("/countIn") |
| | | public void download1(HttpServletResponse response, @RequestParam Map<String, Object> param) throws IOException { |
| | | try { |
| | | response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); |
| | | response.setCharacterEncoding("utf-8"); |
| | | // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系 |
| | | String fileName = URLEncoder.encode("日入库汇总", "UTF-8").replaceAll("\\+", "%20"); |
| | | response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); |
| | | // 这里需要设置不关闭流 |
| | | EasyExcel.write(response.getOutputStream(), ViewWorkCountInView.class).autoCloseStream(Boolean.FALSE).sheet("sheet1").doWrite(getInData(param)); |
| | | } catch (Exception e) { |
| | | // 重置response |
| | | response.reset(); |
| | | response.setContentType("application/json"); |
| | | response.setCharacterEncoding("utf-8"); |
| | | Map<String, String> map = new HashMap<>(); |
| | | map.put("status", "failure"); |
| | | map.put("message", "下载文件失败" + e.getMessage()); |
| | | response.getWriter().println(JSON.toJSONString(map)); |
| | | } |
| | | } |
| | | |
| | | |
| | | private List<ViewWorkCountInView> getInData(Map<String, Object> param) { |
| | | String startTime = "1970.1.2"; |
| | | String endTime = "2099.1.2"; |
| | | if (!Cools.isEmpty(param.get("query_date"))) { |
| | | String queryDate = (String) param.get("query_date"); |
| | | String[] split = queryDate.split(" - "); |
| | | startTime = split[0].split(" ")[0].replace("-", "."); |
| | | endTime = split[1].split(" ")[0].replace("-", "."); |
| | | } |
| | | List<ViewWorkCountInView> allCountIn = reportQueryMapper.selectWorkCountIn(null, null, (String) param.get("matnr"), startTime, endTime); |
| | | return allCountIn; |
| | | } |
| | | |
| | | /** |
| | | * 文件下载并且失败的时候返回json(默认失败了会返回一个有部分数据的Excel) |
| | | * 日入库汇总查询 |
| | | * |
| | | * @since 2.1.1 |
| | | */ |
| | | @RequestMapping("/countOut") |
| | | public void download2(HttpServletResponse response, @RequestParam Map<String, Object> param) throws IOException { |
| | | try { |
| | | response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); |
| | | response.setCharacterEncoding("utf-8"); |
| | | // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系 |
| | | String fileName = URLEncoder.encode("日出库汇总", "UTF-8").replaceAll("\\+", "%20"); |
| | | response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); |
| | | List<ViewWorkCountInView> outData = getOutData(param); |
| | | // 这里需要设置不关闭流 |
| | | EasyExcel.write(response.getOutputStream(), ViewWorkCountInView.class).autoCloseStream(Boolean.FALSE).sheet("sheet1").doWrite(outData); |
| | | } catch (Exception e) { |
| | | // 重置response |
| | | response.reset(); |
| | | response.setContentType("application/json"); |
| | | response.setCharacterEncoding("utf-8"); |
| | | Map<String, String> map = new HashMap<>(); |
| | | map.put("status", "failure"); |
| | | map.put("message", "下载文件失败" + e.getMessage()); |
| | | response.getWriter().println(JSON.toJSONString(map)); |
| | | } |
| | | } |
| | | |
| | | |
| | | private List<ViewWorkCountInView> getOutData(Map<String, Object> param) { |
| | | String startTime = "1970.1.2"; |
| | | String endTime = "2099.1.2"; |
| | | if (!Cools.isEmpty(param.get("query_date"))) { |
| | | String queryDate = (String) param.get("query_date"); |
| | | String[] split = queryDate.split(" - "); |
| | | startTime = split[0].split(" ")[0].replace("-", "."); |
| | | endTime = split[1].split(" ")[0].replace("-", "."); |
| | | } |
| | | List<ViewWorkCountInView> allCountIn = reportQueryMapper.selectWorkCountOut(null,null, (String) param.get("matnr"), startTime, endTime); |
| | | return allCountIn; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 文件下载并且失败的时候返回json(默认失败了会返回一个有部分数据的Excel) |
| | | * 日入库汇总查询 |
| | | * |
| | | * @since 2.1.1 |
| | | */ |
| | | @RequestMapping("/wrkMastLog") |
| | | public void wrkMastLog(HttpServletResponse response, @RequestParam Map<String, Object> param) throws IOException { |
| | | try { |
| | | response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); |
| | | response.setCharacterEncoding("utf-8"); |
| | | // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系 |
| | | String fileName = URLEncoder.encode("工作档维护日志", "UTF-8").replaceAll("\\+", "%20"); |
| | | response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); |
| | | // 这里需要设置不关闭流 |
| | | EasyExcel.write(response.getOutputStream(), ViewWorkCountInView.class).autoCloseStream(Boolean.FALSE).sheet("sheet1").doWrite(getWrkMastLogData(param)); |
| | | } catch (Exception e) { |
| | | // 重置response |
| | | response.reset(); |
| | | response.setContentType("application/json"); |
| | | response.setCharacterEncoding("utf-8"); |
| | | Map<String, String> map = new HashMap<>(); |
| | | map.put("status", "failure"); |
| | | map.put("message", "下载文件失败" + e.getMessage()); |
| | | response.getWriter().println(JSON.toJSONString(map)); |
| | | } |
| | | } |
| | | |
| | | |
| | | private List<AgvWrkMastLog> getWrkMastLogData(Map<String, Object> param) { |
| | | excludeTrash(param); |
| | | EntityWrapper<AgvWrkMastLog> wrapper = new EntityWrapper<>(); |
| | | convert(param, wrapper); |
| | | return wrkMastLogService.selectList(wrapper); |
| | | } |
| | | |
| | | 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("manu_type")) { |
| | | wrapper.like(entry.getKey(), val); |
| | | } else { |
| | | wrapper.eq(entry.getKey(), val); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 文件下载并且失败的时候返回json(默认失败了会返回一个有部分数据的Excel) |
| | | * 日出库明细统计 |
| | | * |
| | | * @since 2.1.1 |
| | | */ |
| | | @RequestMapping("/out") |
| | | public void out(HttpServletResponse response, @RequestParam(required = false) ViewWorkInBean bean) throws IOException { |
| | | try { |
| | | response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); |
| | | response.setCharacterEncoding("utf-8"); |
| | | // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系 |
| | | String fileName = URLEncoder.encode("日出库明细统计", "UTF-8").replaceAll("\\+", "%20"); |
| | | response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); |
| | | List<ViewWorkInBean> list = reportQueryMapper.queryViewWorkOutList(bean); |
| | | // 这里需要设置不关闭流 |
| | | EasyExcel.write(response.getOutputStream(), ViewWorkInBean.class).autoCloseStream(Boolean.FALSE).sheet("sheet1").doWrite(list); |
| | | } catch (Exception e) { |
| | | // 重置response |
| | | response.reset(); |
| | | response.setContentType("application/json"); |
| | | response.setCharacterEncoding("utf-8"); |
| | | Map<String, String> map = new HashMap<>(); |
| | | map.put("status", "failure"); |
| | | map.put("message", "下载文件失败" + e.getMessage()); |
| | | response.getWriter().println(JSON.toJSONString(map)); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 文件下载并且失败的时候返回json(默认失败了会返回一个有部分数据的Excel) |
| | | * 日入库明细统计 |
| | | * |
| | | * @since 2.1.1 |
| | | */ |
| | | @RequestMapping("/in") |
| | | public void in(HttpServletResponse response, @RequestParam(required = false) ViewWorkInBean bean) throws IOException { |
| | | try { |
| | | response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); |
| | | response.setCharacterEncoding("utf-8"); |
| | | // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系 |
| | | String fileName = URLEncoder.encode("日入库明细统计", "UTF-8").replaceAll("\\+", "%20"); |
| | | response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); |
| | | List<ViewWorkInBean> list = reportQueryMapper.queryViewWorkInList(bean); |
| | | // 这里需要设置不关闭流 |
| | | EasyExcel.write(response.getOutputStream(), ViewWorkInBean.class).autoCloseStream(Boolean.FALSE).sheet("sheet1").doWrite(list); |
| | | } catch (Exception e) { |
| | | // 重置response |
| | | response.reset(); |
| | | response.setContentType("application/json"); |
| | | response.setCharacterEncoding("utf-8"); |
| | | Map<String, String> map = new HashMap<>(); |
| | | map.put("status", "failure"); |
| | | map.put("message", "下载文件失败" + e.getMessage()); |
| | | response.getWriter().println(JSON.toJSONString(map)); |
| | | } |
| | | } |
| | | } |
| | |
| | | */ |
| | | @ApiModelProperty(value= "物料号") |
| | | private String matnr; |
| | | /** |
| | | * 物料名称 |
| | | */ |
| | | @ApiModelProperty(value= "物料名称") |
| | | private String maktx; |
| | | |
| | | /** |
| | | * 序列码 |
| | |
| | | package com.zy.asrs.entity; |
| | | |
| | | import com.alibaba.excel.annotation.ExcelProperty; |
| | | import com.alibaba.excel.annotation.format.NumberFormat; |
| | | import com.alibaba.excel.annotation.write.style.ColumnWidth; |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | public class ViewWorkCountInView { |
| | | @ColumnWidth(25) |
| | | @ExcelProperty("入库日期") |
| | | private String oneday; |
| | | |
| | | @ColumnWidth(25) |
| | | @ExcelProperty("物料号") |
| | | private String matnr; |
| | | |
| | | @ColumnWidth(50) |
| | | @ExcelProperty("物料名称") |
| | | private String maktx; |
| | | private String anfme; |
| | | |
| | | @ColumnWidth(25) |
| | | @ExcelProperty("数量") |
| | | private Double anfme; |
| | | } |
| | |
| | | package com.zy.asrs.entity; |
| | | |
| | | import com.alibaba.excel.annotation.ExcelIgnore; |
| | | import com.alibaba.excel.annotation.ExcelProperty; |
| | | import com.alibaba.excel.annotation.format.DateTimeFormat; |
| | | import com.alibaba.excel.annotation.write.style.ColumnWidth; |
| | | import com.core.common.Cools; |
| | | import com.core.common.SpringUtils; |
| | | import com.zy.system.entity.User; |
| | | import com.zy.system.service.UserService; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.text.SimpleDateFormat; |
| | |
| | | |
| | | /** |
| | | * 入库明细统计 |
| | | * |
| | | * @author admin |
| | | * @date 2018年11月26日 |
| | | */ |
| | | @Data |
| | | public class ViewWorkInBean { |
| | | |
| | | @ExcelIgnore |
| | | private int pageNumber; |
| | | |
| | | private int pageNumber; |
| | | private int pageSize; |
| | | @ExcelIgnore |
| | | private int pageSize; |
| | | |
| | | private int stay_time; |
| | | @ExcelIgnore |
| | | private int stay_time; |
| | | |
| | | private String begin_date; |
| | | private String end_date; |
| | | private String query_date; |
| | | @ExcelIgnore |
| | | private String begin_date; |
| | | |
| | | private Integer row; |
| | | @ExcelIgnore |
| | | private String end_date; |
| | | |
| | | private String crn_str_time; |
| | | private String crn_end_time; |
| | | @ExcelIgnore |
| | | private String query_date; |
| | | |
| | | @ApiModelProperty(value= "工作号") |
| | | private Integer wrk_no; |
| | | @ExcelIgnore |
| | | private Integer row; |
| | | |
| | | @ApiModelProperty(value= "工作时间") |
| | | private Date io_time; |
| | | @ExcelIgnore |
| | | private String crn_str_time; |
| | | |
| | | @ApiModelProperty(value= "库位号") |
| | | private String loc_no; |
| | | @ExcelIgnore |
| | | private String crn_end_time; |
| | | |
| | | @ApiModelProperty(value= "货架条码") |
| | | private String zpallet; |
| | | @ColumnWidth(15) |
| | | @ExcelProperty(value = "销售单号") |
| | | private String three_code; |
| | | |
| | | @ApiModelProperty(value= "数量") |
| | | private Double anfme; |
| | | @ExcelIgnore |
| | | @ExcelProperty(value = "工作号") |
| | | private Integer wrk_no; |
| | | |
| | | @ApiModelProperty(value= "物料号") |
| | | private String matnr; |
| | | @ColumnWidth(20) |
| | | @ExcelProperty(value = "入库时间") |
| | | private Date io_time; |
| | | |
| | | @ApiModelProperty(value= "物料号") |
| | | private String maktx; |
| | | @ColumnWidth(20) |
| | | @ExcelProperty(value = "库位号") |
| | | private String loc_no; |
| | | |
| | | @ApiModelProperty(value= "序列码") |
| | | private String batch; |
| | | @ExcelProperty(value = "货站码") |
| | | private String supp_code; |
| | | |
| | | @ApiModelProperty(value= "单据编号") |
| | | private String order_no; |
| | | @ExcelProperty(value = "货架条码") |
| | | private String zpallet; |
| | | |
| | | @ApiModelProperty(value= "规格") |
| | | private String specs; |
| | | @ExcelProperty(value = "数量") |
| | | private Double anfme; |
| | | |
| | | @ApiModelProperty(value= "批次") |
| | | private String model; |
| | | @ColumnWidth(15) |
| | | @ExcelProperty(value = "物料号") |
| | | private String matnr; |
| | | |
| | | @ApiModelProperty(value= "颜色") |
| | | private String color; |
| | | @ColumnWidth(35) |
| | | @ExcelProperty(value = "物料名称") |
| | | private String maktx; |
| | | |
| | | @ApiModelProperty(value= "品牌") |
| | | private String brand; |
| | | @ExcelProperty(value = "序列码") |
| | | private String batch; |
| | | |
| | | @ApiModelProperty(value= "单位") |
| | | private String unit; |
| | | @ExcelProperty(value = "单据编号") |
| | | private String order_no; |
| | | |
| | | @ApiModelProperty(value= "单价") |
| | | private Double price; |
| | | @ExcelProperty(value = "规格") |
| | | private String specs; |
| | | |
| | | @ApiModelProperty(value= "sku") |
| | | private String sku; |
| | | @ExcelProperty(value = "批次") |
| | | private String model; |
| | | |
| | | @ApiModelProperty(value= "包数") |
| | | private Double units; |
| | | @ExcelIgnore |
| | | private String color; |
| | | |
| | | @ApiModelProperty(value= "条码") |
| | | private String barcode; |
| | | @ExcelProperty(value = "品牌") |
| | | private String brand; |
| | | |
| | | @ApiModelProperty(value= "物料状态") |
| | | private String origin; |
| | | @ExcelProperty(value = "单位") |
| | | private String unit; |
| | | |
| | | @ApiModelProperty(value= "厂家") |
| | | private String manu; |
| | | @ExcelIgnore |
| | | private Double price; |
| | | |
| | | @ApiModelProperty(value= "单据时间") |
| | | private String manu_date; |
| | | @ExcelProperty(value = "sku") |
| | | private String sku; |
| | | |
| | | @ApiModelProperty(value= "品项数") |
| | | private String item_num; |
| | | @ExcelIgnore |
| | | private Double units; |
| | | |
| | | @ApiModelProperty(value= "安全库存量") |
| | | private Double safe_qty; |
| | | @ExcelProperty(value = "条码") |
| | | private String barcode; |
| | | |
| | | @ApiModelProperty(value= "重量") |
| | | private Double weight; |
| | | @ExcelIgnore |
| | | private String origin; |
| | | |
| | | @ApiModelProperty(value= "长度") |
| | | private Double length; |
| | | @ExcelIgnore |
| | | @ExcelProperty(value = "厂家") |
| | | private String manu; |
| | | |
| | | @ApiModelProperty(value= "体积") |
| | | private Double volume; |
| | | @ExcelProperty(value = "单据时间") |
| | | private String manu_date; |
| | | |
| | | @ApiModelProperty(value= "三方编码") |
| | | private String three_code; |
| | | @ExcelProperty(value = "品项数") |
| | | private String item_num; |
| | | |
| | | @ApiModelProperty(value= "供应商") |
| | | private String supp; |
| | | @ExcelProperty(value = "安全库存量") |
| | | private Double safe_qty; |
| | | |
| | | @ApiModelProperty(value= "供应商编码") |
| | | private String supp_code; |
| | | @ExcelProperty(value = "重量") |
| | | private Double weight; |
| | | @ExcelIgnore |
| | | @ExcelProperty(value = "长度") |
| | | private Double length; |
| | | @ExcelIgnore |
| | | @ExcelProperty(value = "体积") |
| | | private Double volume; |
| | | |
| | | @ApiModelProperty(value= "是否批次 1: 是 0: 否 ") |
| | | private Integer be_batch; |
| | | |
| | | @ApiModelProperty(value= "保质期") |
| | | private String dead_time; |
| | | private String deadTime=dead_time; |
| | | |
| | | @ApiModelProperty(value= "预警天数") |
| | | private Integer dead_warn; |
| | | private Integer deadWarn=this.dead_warn; |
| | | @ExcelProperty(value = "供应商") |
| | | private String supp; |
| | | |
| | | @ApiModelProperty(value= "制购 1: 制造 2: 采购 3: 外协 ") |
| | | private Integer source; |
| | | |
| | | @ApiModelProperty(value= "要求检验 1: 是 0: 否 ") |
| | | private Integer inspect; |
| | | |
| | | @ApiModelProperty(value= "危险品 1: 是 0: 否 ") |
| | | private Integer danger; |
| | | @ExcelIgnore |
| | | @ExcelProperty(value = "是否批次 1: 是 0: 否 ") |
| | | private Integer be_batch; |
| | | |
| | | @ApiModelProperty(value= "修改人员") |
| | | private Long modi_user; |
| | | @ExcelIgnore |
| | | @ExcelProperty(value = "保质期") |
| | | private String dead_time; |
| | | @ExcelIgnore |
| | | private String deadTime = dead_time; |
| | | @ExcelIgnore |
| | | @ExcelProperty(value = "预警天数") |
| | | private Integer dead_warn; |
| | | @ExcelIgnore |
| | | private Integer deadWarn = this.dead_warn; |
| | | @ExcelIgnore |
| | | @ExcelProperty(value = "制购 1: 制造 2: 采购 3: 外协 ") |
| | | private Integer source; |
| | | @ExcelIgnore |
| | | @ExcelProperty(value = "要求检验 1: 是 0: 否 ") |
| | | private Integer inspect; |
| | | @ExcelIgnore |
| | | @ExcelProperty(value = "危险品 1: 是 0: 否 ") |
| | | private Integer danger; |
| | | |
| | | @ApiModelProperty(value= "修改时间") |
| | | private Object modi_time; |
| | | @ExcelProperty(value = "修改人员") |
| | | private Long modi_user; |
| | | |
| | | @ApiModelProperty(value= "创建者") |
| | | private Long appe_user; |
| | | @ExcelProperty(value = "修改时间") |
| | | private Date modi_time; |
| | | |
| | | @ApiModelProperty(value= "添加时间") |
| | | private Object appe_time; |
| | | @ExcelProperty(value = "创建者") |
| | | private Long appe_user; |
| | | |
| | | @ApiModelProperty(value= "备注") |
| | | private String memo; |
| | | @ExcelProperty(value = "添加时间") |
| | | private Date appe_time; |
| | | |
| | | // 工作号 |
| | | private Integer wrkNo; |
| | | // 工作时间 |
| | | private Date ioTime; |
| | | //单据编号 |
| | | private String orderNo; |
| | | //单据时间 |
| | | private String manuDate; |
| | | //品项数 |
| | | private String itemNum; |
| | | //安全库存量 |
| | | private Double safeQty; |
| | | //三方编码 |
| | | private String threeCode; |
| | | //供应商编码 |
| | | private String suppCode; |
| | | //是否批次 1: 是 0: 否 |
| | | private Integer beBatch; |
| | | // 修改人员 |
| | | private Long modiUser; |
| | | // 修改时间 |
| | | private Object modiTime; |
| | | // 创建者 |
| | | private Long appeUser; |
| | | // 添加时间 |
| | | private Object appeTime; |
| | | public void sype(){ |
| | | // 工作号 |
| | | wrkNo=wrk_no; |
| | | // 工作时间 |
| | | ioTime=io_time; |
| | | //单据编号 |
| | | orderNo=order_no; |
| | | //单据时间 |
| | | manuDate=manu_date; |
| | | //品项数 |
| | | itemNum=item_num; |
| | | //安全库存量 |
| | | safeQty=safe_qty; |
| | | //三方编码 |
| | | threeCode=three_code; |
| | | //供应商编码 |
| | | suppCode=supp_code; |
| | | //是否批次 1: 是 0: 否 |
| | | beBatch=be_batch; |
| | | // 修改人员 |
| | | modiUser=modi_user; |
| | | // 修改时间 |
| | | modiTime=modi_time; |
| | | // 创建者 |
| | | appeUser=appe_user; |
| | | // 添加时间 |
| | | appeTime=appe_time; |
| | | } |
| | | @ExcelProperty(value = "备注") |
| | | private String memo; |
| | | |
| | | public String getModiUser$(){ |
| | | UserService service = SpringUtils.getBean(UserService.class); |
| | | User user = service.selectById(this.modi_user); |
| | | if (!Cools.isEmpty(user)){ |
| | | return String.valueOf(user.getUsername()); |
| | | } |
| | | return null; |
| | | } |
| | | @ExcelIgnore |
| | | @ExcelProperty(value = "工作号") |
| | | // 工作号 |
| | | private Integer wrkNo; |
| | | @ExcelIgnore |
| | | @DateTimeFormat(value = "yyyy-MM-dd HH:mm:ss") |
| | | @ExcelProperty(value = "工作时间") |
| | | // 工作时间 |
| | | private Date ioTime; |
| | | @ExcelIgnore |
| | | @ExcelProperty(value = "单据编号") |
| | | //单据编号 |
| | | private String orderNo; |
| | | @ExcelIgnore |
| | | @ExcelProperty(value = "单据时间") |
| | | //单据时间 |
| | | private String manuDate; |
| | | @ExcelIgnore |
| | | @ExcelProperty(value = "品项数") |
| | | //品项数 |
| | | private String itemNum; |
| | | @ExcelIgnore |
| | | @ExcelProperty(value = "安全库存量") |
| | | //安全库存量 |
| | | private Double safeQty; |
| | | @ExcelIgnore |
| | | @ExcelProperty(value = "销售单号") |
| | | //三方编码 |
| | | private String threeCode; |
| | | @ExcelIgnore |
| | | @ExcelProperty(value = "供应商编码") |
| | | //供应商编码 |
| | | private String suppCode; |
| | | @ExcelIgnore |
| | | @ExcelProperty(value = "师傅批次") |
| | | //是否批次 1: 是 0: 否 |
| | | private Integer beBatch; |
| | | @ExcelIgnore |
| | | @ExcelProperty(value = "修改人员") |
| | | // 修改人员 |
| | | private Long modiUser; |
| | | @ExcelIgnore |
| | | @ExcelProperty(value = "修改时间") |
| | | // 修改时间 |
| | | private Date modiTime; |
| | | @ExcelIgnore |
| | | @ExcelProperty(value = "创建者") |
| | | // 创建者 |
| | | private Long appeUser; |
| | | @ExcelIgnore |
| | | @ExcelProperty(value = "添加时间") |
| | | // 添加时间 |
| | | private Date appeTime; |
| | | |
| | | public String getAppeUser$(){ |
| | | UserService service = SpringUtils.getBean(UserService.class); |
| | | User user = service.selectById(this.appe_user); |
| | | if (!Cools.isEmpty(user)){ |
| | | return String.valueOf(user.getUsername()); |
| | | } |
| | | return null; |
| | | } |
| | | public void sype() { |
| | | // 工作号 |
| | | wrkNo = wrk_no; |
| | | // 工作时间 |
| | | ioTime = io_time; |
| | | //单据编号 |
| | | orderNo = order_no; |
| | | //单据时间 |
| | | manuDate = manu_date; |
| | | //品项数 |
| | | itemNum = item_num; |
| | | //安全库存量 |
| | | safeQty = safe_qty; |
| | | //三方编码 |
| | | threeCode = three_code; |
| | | //供应商编码 |
| | | suppCode = supp_code; |
| | | //是否批次 1: 是 0: 否 |
| | | beBatch = be_batch; |
| | | // 修改人员 |
| | | modiUser = modi_user; |
| | | // 修改时间 |
| | | modiTime = modi_time; |
| | | // 创建者 |
| | | appeUser = appe_user; |
| | | // 添加时间 |
| | | appeTime = appe_time; |
| | | } |
| | | |
| | | public String getIoTime$(){ |
| | | if (Cools.isEmpty(this.io_time)){ |
| | | return ""; |
| | | } |
| | | return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.io_time); |
| | | } |
| | | public String getModiUser$() { |
| | | UserService service = SpringUtils.getBean(UserService.class); |
| | | User user = service.selectById(this.modi_user); |
| | | if (!Cools.isEmpty(user)) { |
| | | return String.valueOf(user.getUsername()); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | public void setQuery_date(String query_date) { |
| | | this.query_date = query_date; |
| | | if (query_date.contains(" - ")) { |
| | | String[] dates = query_date.split(" - "); |
| | | this.begin_date = dates[0]; |
| | | this.end_date = dates[1]; |
| | | public String getAppeUser$() { |
| | | UserService service = SpringUtils.getBean(UserService.class); |
| | | User user = service.selectById(this.appe_user); |
| | | if (!Cools.isEmpty(user)) { |
| | | return String.valueOf(user.getUsername()); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | } |
| | | } |
| | | public String getIoTime$() { |
| | | if (Cools.isEmpty(this.io_time)) { |
| | | return ""; |
| | | } |
| | | return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.io_time); |
| | | } |
| | | |
| | | public void setQuery_date(String query_date) { |
| | | this.query_date = query_date; |
| | | if (query_date.contains(" - ")) { |
| | | String[] dates = query_date.split(" - "); |
| | | this.begin_date = dates[0]; |
| | | this.end_date = dates[1]; |
| | | |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | |
| | | List<ViewWorkCountInView> selectWorkCountIn(@Param("curr") Integer curr, @Param("limit") Integer limit, @Param("matnr")String matnr, @Param("start") String startTime, @Param("end") String endTime); |
| | | |
| | | |
| | | Integer selectWorkCountInTotal(String matnr, @Param("start") String startTime, @Param("end") String endTime); |
| | | |
| | | List<ViewWorkCountInView> selectWorkCountOut(@Param("curr") Integer pageNumber, @Param("limit") Integer pageSize, String matnr, @Param("start") String startTime, @Param("end") String endTime); |
| | |
| | | if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("order_no", pick.getOrderNo()).eq("matnr", pick.getMatnr()).eq("three_code",pick.getThreeCode()))){ |
| | | throw new CoolException("修改订单明细失败,请联系管理员"+pick.getOrderNo()+pick.getMatnr()); |
| | | } |
| | | Order order = orderService.selectByNo(orderDetl.getOrderNo()); |
| | | if (order.getSettle() == 1) { |
| | | if (!orderService.updateSettle(order.getId(), 2L, userId)) { |
| | | throw new CoolException("再次拣料:更新订单状态失败!"); |
| | | } |
| | | } |
| | | } |
| | | // 确认是否全部出库 |
| | | double totleWrkdetl = 0.0; |
| | |
| | | // agvLocDetls.size() == 1 |
| | | |
| | | |
| | | return "组托成功,绑定站点成功"; |
| | | return "拣料成功"; |
| | | } |
| | | |
| | | /* |
| | |
| | | if (agvLocMast.getFloor() != floor) { |
| | | if (agvLocMast.getFloor() == 1 && (floor == 2 || floor == 3)) { |
| | | throw new CoolException("当前库位请选择调拨单调拨!"); |
| | | } else if ((agvLocMast.getFloor() == 2 || agvLocMast.getFloor() == 3) && (floor == 1 || floor == 4)) { |
| | | throw new CoolException("当前库位请选择调拨回流单回退!"); |
| | | } else { |
| | | ioType = 12; |
| | | } |
| | |
| | | }); |
| | | } |
| | | |
| | | // 如果当前任务是箱壳二三楼回退一楼的 回滚调拨单 |
| | | if (ioType == 12 && locMast.getFloor() == 1 && floor != 4 && agvLocMast.getFloor() != 1) { |
| | | List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvLocMast.getLocNo())); |
| | | for (AgvLocDetl agvLocDetl : agvLocDetls) { |
| | | OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("three_code", agvLocDetl.getThreeCode()).eq("matnr", agvLocDetl.getMatnr()).eq("source", 33)); |
| | | if (Cools.isEmpty(orderDetl)) { |
| | | throw new CoolException("当前物料的调拨单不存在!"); |
| | | } |
| | | Order order = orderService.selectByNo(orderDetl.getOrderNo()); |
| | | if (Cools.isEmpty(order)) { |
| | | throw new CoolException("当前物料的调拨单不存在!"); |
| | | } |
| | | if (order.getSettle() == 4L) { |
| | | if (!orderService.updateSettle(order.getId(),2L,userId)) { |
| | | throw new CoolException("调拨单回滚异常!"); |
| | | } |
| | | } |
| | | orderDetl.setQty(orderDetl.getQty() - agvLocDetl.getAnfme()); |
| | | if (!orderDetlService.updateById(orderDetl)) { |
| | | throw new CoolException("保存工作明细失败"); |
| | | } |
| | | } |
| | | } |
| | | // // 如果当前任务是箱壳二三楼回退一楼的 回滚调拨单 |
| | | // if (ioType == 12 && locMast.getFloor() == 1 && floor != 4 && agvLocMast.getFloor() != 1) { |
| | | // List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvLocMast.getLocNo())); |
| | | // for (AgvLocDetl agvLocDetl : agvLocDetls) { |
| | | // OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("three_code", agvLocDetl.getThreeCode()).eq("matnr", agvLocDetl.getMatnr()).eq("source", 33)); |
| | | // if (Cools.isEmpty(orderDetl)) { |
| | | // throw new CoolException("当前物料的调拨单不存在!"); |
| | | // } |
| | | // Order order = orderService.selectByNo(orderDetl.getOrderNo()); |
| | | // if (Cools.isEmpty(order)) { |
| | | // throw new CoolException("当前物料的调拨单不存在!"); |
| | | // } |
| | | // if (order.getSettle() == 4L) { |
| | | // if (!orderService.updateSettle(order.getId(),2L,userId)) { |
| | | // throw new CoolException("调拨单回滚异常!"); |
| | | // } |
| | | // } |
| | | // orderDetl.setQty(orderDetl.getQty() - agvLocDetl.getAnfme()); |
| | | // if (!orderDetlService.updateById(orderDetl)) { |
| | | // throw new CoolException("保存工作明细失败"); |
| | | // } |
| | | // } |
| | | // } |
| | | //更新目标库位状态 |
| | | updateAgvLocMast(agvLocMast,"P"); |
| | | updateAgvLocMast(locMast,"Q"); |
| | |
| | | adjDetl.setLocNo(locDetl.getLocNo()); |
| | | adjDetl.setMatnr(locDetl.getMatnr()); |
| | | adjDetl.setBatch(locDetl.getBatch()); |
| | | adjDetl.setMaktx(locDetl.getMaktx()); |
| | | adjDetl.setOriQty(locDetl.getAnfme()); |
| | | adjDetl.setAdjQty(adjust.getCount()); |
| | | adjDetl.setModiTime(now); |
| | |
| | | adjDetl.setLocNo(locDetl.getLocNo()); |
| | | adjDetl.setMatnr(locDetl.getMatnr()); |
| | | adjDetl.setBatch(locDetl.getBatch()); |
| | | adjDetl.setMaktx(locDetl.getMaktx()); |
| | | adjDetl.setOriQty(locDetl.getAnfme()); |
| | | adjDetl.setAdjQty(0.0D); |
| | | adjDetl.setModiTime(now); |
| | |
| | | adjDetl.setLocNo(locMast.getLocNo()); |
| | | adjDetl.setMatnr(adjust.getMatnr()); |
| | | adjDetl.setBatch(adjust.getBatch()); |
| | | adjDetl.setMaktx(locDetl.getMaktx()); |
| | | adjDetl.setOriQty(0.0D); |
| | | adjDetl.setAdjQty(adjust.getCount()); |
| | | adjDetl.setModiTime(now); |
| | |
| | | String locNo = wrkMast.getSourceLocNo(); |
| | | // 目标库位 |
| | | String targetLocNo = wrkMast.getLocNo(); |
| | | agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo),"",(short)0); |
| | | agvLocMastService.updateLocStsByLocNo(locNo, "F", wrkMast.getBarcode(), (short) getContainerTypeByloc(locNo), "", (short) 0); |
| | | if (wrkMast.getIoType() == 108) { |
| | | if (wrkMast.getWrkSts() != 22) { |
| | | agvLocMastService.updateLocStsByLocNo(targetLocNo,"O","",null); |
| | | agvLocMastService.updateLocStsByLocNo(targetLocNo, "O", "", null); |
| | | } |
| | | } else { |
| | | if (wrkMast.getWrkSts() != 207L && wrkMast.getWrkSts() != 205L) { |
| | | if (wrkMast.getWrkSts() != 22) { |
| | | agvBasDevpService.updateLocStsAndBarcodeByDevNo(targetLocNo,"O","",wrkMast.getWhsType().shortValue()); |
| | | agvBasDevpService.updateLocStsAndBarcodeByDevNo(targetLocNo, "O", "", wrkMast.getWhsType().shortValue()); |
| | | } |
| | | } else { |
| | | throw new CoolException("当前作业不能取消!"); |
| | |
| | | List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo)); |
| | | // 更新订单 |
| | | for (AgvLocDetl agvLocDetl : agvLocDetls) { |
| | | OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", "DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode())); |
| | | OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", "DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode())); |
| | | orderDetl.setQty(orderDetl.getQty() - agvLocDetl.getAnfme()); |
| | | if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("order_no","DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()))){ |
| | | throw new CoolException("修改订单明细失败,请联系管理员"+agvLocDetl.getOrderNo()+agvLocDetl.getMatnr()); |
| | | if (!orderDetlService.update(orderDetl, new EntityWrapper<OrderDetl>().eq("order_no", "DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode()))) { |
| | | throw new CoolException("修改订单明细失败,请联系管理员" + agvLocDetl.getOrderNo() + agvLocDetl.getMatnr()); |
| | | } |
| | | // FlowLog flowLog = new FlowLog(); |
| | | // flowLog.setFid(String.valueOf(flowId)); |
| | |
| | | // if (!flowLogService.insert(flowLog)) { |
| | | // throw new CoolException("同步半成品调拨单流水记录失败"); |
| | | // } |
| | | } |
| | | |
| | | // 回流单取消 |
| | | } else if (wrkMast.getIoType() == 114) { |
| | | //源库位 |
| | | String locNo = wrkMast.getSourceLocNo(); |
| | | // 目标库位 |
| | | String targetLocNo = wrkMast.getLocNo(); |
| | | agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo)); |
| | | agvLocMastService.updateLocStsByLocNo(targetLocNo,"O","",null); |
| | | // 源库位 库位主档 |
| | | AgvLocMast sourceLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", locNo)); |
| | | AgvLocMast locMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", targetLocNo)); |
| | | // 当前任务是跨层移库 且目标楼层是1楼的 回滚调拨单 |
| | | List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo)); |
| | | for (AgvLocDetl agvLocDetl : agvLocDetls) { |
| | | OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("three_code", agvLocDetl.getThreeCode()).eq("matnr", agvLocDetl.getMatnr()).eq("source", 17)); |
| | | orderDetl.setQty(orderDetl.getQty() - agvLocDetl.getAnfme()); |
| | | if (!orderDetlService.updateById(orderDetl)) { |
| | | throw new CoolException("更新订单明细失败"); |
| | | } |
| | | } |
| | | //出库取消 |
| | | } else { |
| | |
| | | |
| | | } |
| | | |
| | | if(wrkMast.getIoType() != 1 && wrkMast.getIoType() != 10 && wrkMast.getIoType()!=111 && wrkMast.getIoType()!=108 && wrkMast.getIoType() != 12 && wrkMast.getIoType() != 11){ |
| | | if(wrkMast.getIoType() != 114 && wrkMast.getIoType() != 1 && wrkMast.getIoType() != 10 && wrkMast.getIoType()!=111 && wrkMast.getIoType()!=108 && wrkMast.getIoType() != 12 && wrkMast.getIoType() != 11){ |
| | | //订单回滚 |
| | | //List<AgvWrkDetl> agvWrkDetlList = agvWrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); |
| | | List<AgvWrkDetl> agvWrkDetlList1 = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", wrkMast.getWrkNo())); |
| | |
| | | } |
| | | agvTaskCreateParam.setTaskCode(agvWrkMast.getWrkNo().toString()); |
| | | switch (agvWrkMast.getIoType()) { |
| | | case 114: |
| | | case 108: |
| | | case 12: |
| | | agvTaskCreateParam.setTaskTyp("F06"); |
| | |
| | | adjDetl.setLocNo(locDetl.getLocNo()); |
| | | adjDetl.setMatnr(locDetl.getMatnr()); |
| | | adjDetl.setBatch(locDetl.getBatch()); |
| | | adjDetl.setMaktx(locDetl.getMaktx()); |
| | | adjDetl.setOriQty(locDetl.getAnfme()); |
| | | adjDetl.setAdjQty(adjust.getCount()); |
| | | adjDetl.setModiTime(now); |
| | |
| | | adjDetl.setLocNo(locDetl.getLocNo()); |
| | | adjDetl.setMatnr(locDetl.getMatnr()); |
| | | adjDetl.setBatch(locDetl.getBatch()); |
| | | adjDetl.setMaktx(locDetl.getMaktx()); |
| | | adjDetl.setOriQty(locDetl.getAnfme()); |
| | | adjDetl.setAdjQty(0.0D); |
| | | adjDetl.setModiTime(now); |
| | |
| | | adjDetl.setLocNo(locMast.getLocNo()); |
| | | adjDetl.setMatnr(adjust.getMatnr()); |
| | | adjDetl.setBatch(adjust.getBatch()); |
| | | adjDetl.setMaktx(locDetl.getMaktx()); |
| | | adjDetl.setOriQty(0.0D); |
| | | adjDetl.setAdjQty(adjust.getCount()); |
| | | adjDetl.setModiTime(now); |
| | |
| | | .or().eq("io_type", 108) |
| | | .or().eq("io_type", 111) |
| | | .or().eq("io_type", 112) |
| | | .or().eq("io_type", 113)).getRecords(); |
| | | .or().eq("io_type", 113) |
| | | .or().eq("io_type", 114)).getRecords(); |
| | | |
| | | if(!Cools.isEmpty(agvWrkMastList)){ |
| | | agvWrkMastList.forEach(agvWrkMast -> { |
| | |
| | | server: |
| | | port: 8080 |
| | | port: 8083 |
| | | servlet: |
| | | context-path: /@pom.build.finalName@ |
| | | |
| | |
| | | u8: |
| | | url: http://192.168.9.3:8877 |
| | | orderReportPath: /DBMS/U8/CM/add |
| | | #ERP: |
| | | # url: http://39.184.149.30:8877 |
| | | # orderReportPath: /DBMS/U8/CM/add |
| | | mes: |
| | | url: https://v3-ali.blacklake.cn/api/openapi/domain/web/v1/route |
| | | orderReportPath: /inventory/open/v2/transfer_order/ordinary/_execute |
| | | pakinReportPath: /inventory/open/v2/inbound_order/execute/_inbound |
| | | buyPakinReportPath: /schedule-for-yinzuo/open/yinzuo/inboundOrder |
| | | pakoutReportPath: /inventory/open/v2/outbound_order/_outbound_by_suggest |
| | | getTokenUrl: https://v3-ali.blacklake.cn |
| | | getTokenPath: /api/openapi/domain/api/v1/access_token/_get_access_token |
| | | appKey: cli_1712644281065780 |
| | | appSecret: 6710d24e31e64adc963d4c213b2c9b8e |
| | | ERP: |
| | | url: http://39.184.149.30:8877 |
| | | orderReportPath: /DBMS/U8/CM/add |
| | | MES: |
| | | url: http://192.168.1.55:8010 |
| | | orderReportPath: /api/RdAudit |
| | | |
| | | agvBasDev: |
| | | maxWorkNum: 1 |
| | |
| | | </update> |
| | | |
| | | <select id="selectComplete" resultMap="BaseResultMap"> |
| | | select top 5 * |
| | | select TOP 5 * |
| | | from man_order |
| | | where 1=1 |
| | | and settle = 4 |
| | | and status = 1 |
| | | order by create_time asc |
| | | order by newID(), create_time asc |
| | | </select> |
| | | |
| | | <select id="selectorderNoL" resultMap="BaseResultMap"> |
| | |
| | | </if> |
| | | |
| | | ) a ) b |
| | | WHERE 1=1 and b.row between ((#{curr}-1)*#{limit}+1) and (#{curr}*#{limit}) |
| | | WHERE 1=1 |
| | | <if test="curr != null and curr !=''"> |
| | | and b.row between ((#{curr}-1)*#{limit}+1) and (#{curr}*#{limit}) |
| | | </if> |
| | | |
| | | </select> |
| | | <select id="selectWorkCountInTotal" resultType="java.lang.Integer"> |
| | |
| | | and matnr = #{matnr} |
| | | </if> |
| | | ) a ) b |
| | | WHERE 1=1 and b.row between ((#{curr}-1)*#{limit}+1) and (#{curr}*#{limit}) |
| | | WHERE 1=1 |
| | | <if test="curr != null and curr !=''"> |
| | | and b.row between ((#{curr}-1)*#{limit}+1) and (#{curr}*#{limit}) |
| | | </if> |
| | | </select> |
| | | <select id="selectWorkCountOutTotal" resultType="java.lang.Integer"> |
| | | SELECT COUNT(*) FROM asr_wrkout_count_view |
| | |
| | | where 1=1 |
| | | <include refid="viewWorkInConditionSql"></include> |
| | | ) t |
| | | ) a where 1=1 and a.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize}) |
| | | ) a where 1=1 |
| | | <if test="pageNumber!=null and pageSize!=null"> |
| | | and a.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize}) |
| | | </if> |
| | | </select> |
| | | |
| | | <select id="getViewWorkInCount" parameterType="com.zy.asrs.entity.ViewWorkInBean" resultType="Integer"> |
| | |
| | | where 1=1 |
| | | <include refid="viewWorkInConditionSql"></include> |
| | | ) t |
| | | ) a where 1=1 and a.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize}) |
| | | |
| | | ) a where 1=1 |
| | | <if test="pageNumber!=null and pageSize!=null"> |
| | | and a.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize}) |
| | | </if> |
| | | </select> |
| | | |
| | | <select id="getViewWorkOutCount" parameterType="com.zy.asrs.entity.ViewWorkInBean" resultType="Integer"> |
| | |
| | | 'wrkMast': exportData, |
| | | 'fields': fields |
| | | }; |
| | | |
| | | $.ajax({ |
| | | url: baseUrl+"/wrkMast/export/auth", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | |
| | | fields.push(col.field); |
| | | } |
| | | }); |
| | | // var exportData = {}; |
| | | // $.each($('#search-box [name]').serializeArray(), function() { |
| | | // exportData[this.name] = this.value; |
| | | // }); |
| | | // var param = { |
| | | // 'wrkMast': exportData, |
| | | // 'fields': fields |
| | | // }; |
| | | var param = '?'; |
| | | var exportData = {}; |
| | | $.each($('#search-box [name]').serializeArray(), function() { |
| | | exportData[this.name] = this.value; |
| | | param += this.name + '=' + this.value + '&'; |
| | | }); |
| | | var param = { |
| | | 'wrkMast': exportData, |
| | | 'fields': fields |
| | | }; |
| | | $.ajax({ |
| | | url: baseUrl+"/wrkMast/export/auth", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | data: JSON.stringify(param), |
| | | dataType:'json', |
| | | contentType:'application/json;charset=UTF-8', |
| | | method: 'POST', |
| | | success: function (res) { |
| | | layer.closeAll(); |
| | | if (res.code === 200) { |
| | | table.exportFile(titles,res.data,'xls'); |
| | | } else if (res.code === 403) { |
| | | top.location.href = baseUrl+"/"; |
| | | } else { |
| | | layer.msg(res.msg) |
| | | } |
| | | } |
| | | }); |
| | | window.location.href = baseUrl + "/report/download/wrkMastLog" + param; |
| | | layer.closeAll(); |
| | | // $.ajax({ |
| | | // url: baseUrl+"/wrkMast/export/auth", |
| | | // headers: {'token': localStorage.getItem('token')}, |
| | | // data: JSON.stringify(param), |
| | | // dataType:'json', |
| | | // contentType:'application/json;charset=UTF-8', |
| | | // method: 'POST', |
| | | // success: function (res) { |
| | | // layer.closeAll(); |
| | | // if (res.code === 200) { |
| | | // table.exportFile(titles,res.data,'xls'); |
| | | // } else if (res.code === 403) { |
| | | // top.location.href = baseUrl+"/"; |
| | | // } else { |
| | | // layer.msg(res.msg) |
| | | // } |
| | | // } |
| | | // }); |
| | | }); |
| | | break; |
| | | } |
| | |
| | | var pageCurr; |
| | | |
| | | function getCol() { |
| | | var cols = [ |
| | | {field: 'oneday', align: 'center', title: '入库日期', width: 200} |
| | | ,{field: 'matnr', align: 'center',title: '物料号'} |
| | | ,{field: 'maktx', align: 'center',title: '物料名称'} |
| | | ,{field: 'anfme', align: 'center',title: '数量'} |
| | | , {field: 'matnr', align: 'center', title: '物料号'} |
| | | , {field: 'maktx', align: 'center', title: '物料名称'} |
| | | , {field: 'anfme', align: 'center', title: '数量'} |
| | | ]; |
| | | |
| | | return cols; |
| | | } |
| | | |
| | | layui.use(['table','laydate', 'form'], function(){ |
| | | layui.use(['table', 'laydate', 'form'], function () { |
| | | var table = layui.table; |
| | | var $ = layui.jquery; |
| | | var layer = layui.layer; |
| | |
| | | tableIns = table.render({ |
| | | elem: '#workIn', |
| | | headers: {token: localStorage.getItem('token')}, |
| | | url: baseUrl+'/report/viewWorkCountInList.action', |
| | | url: baseUrl + '/report/viewWorkCountInList.action', |
| | | page: true, |
| | | limit: 16, |
| | | limits: [16, 30, 50, 100, 200, 500], |
| | |
| | | response: { |
| | | statusCode: 200 |
| | | }, |
| | | done: function(res, curr, count) { |
| | | done: function (res, curr, count) { |
| | | |
| | | if (res.code === 403) { |
| | | top.location.href = baseUrl+"/"; |
| | | top.location.href = baseUrl + "/"; |
| | | } |
| | | pageCurr=curr; |
| | | pageCurr = curr; |
| | | limit(); |
| | | } |
| | | }); |
| | |
| | | // 监听排序事件 |
| | | table.on('sort(workIn)', function (obj) { |
| | | var searchData = {}; |
| | | $.each($('#search-box [name]').serializeArray(), function() { |
| | | $.each($('#search-box [name]').serializeArray(), function () { |
| | | searchData[this.name] = this.value; |
| | | }); |
| | | searchData['orderByField'] = obj.field; |
| | |
| | | }, |
| | | done: function (res, curr, count) { |
| | | if (res.code === 403) { |
| | | top.location.href = baseUrl+"/"; |
| | | top.location.href = baseUrl + "/"; |
| | | } |
| | | pageCurr=curr; |
| | | pageCurr = curr; |
| | | limit(); |
| | | } |
| | | }); |
| | |
| | | // 监听头工具栏事件 |
| | | table.on('toolbar(workIn)', function (obj) { |
| | | var checkStatus = table.checkStatus(obj.config.id); |
| | | switch(obj.event) { |
| | | switch (obj.event) { |
| | | case 'exportData': |
| | | layer.confirm('确定导出Excel吗', {shadeClose: true}, function(){ |
| | | var titles=[]; |
| | | var fields=[]; |
| | | layer.confirm('确定导出Excel吗', {shadeClose: true}, function () { |
| | | var titles = []; |
| | | var fields = []; |
| | | obj.config.cols[0].map(function (col) { |
| | | if (col.type === 'normal' && col.hide === false && col.toolbar == null) { |
| | | titles.push(col.title); |
| | | fields.push(col.field); |
| | | } |
| | | }); |
| | | var param = '?'; |
| | | var exportData = {}; |
| | | $.each($('#search-box [name]').serializeArray(), function() { |
| | | $.each($('#search-box [name]').serializeArray(), function () { |
| | | exportData[this.name] = this.value; |
| | | param += this.name + '=' + this.value + '&'; |
| | | }); |
| | | var param = { |
| | | fields: fields, |
| | | exportData: exportData |
| | | }; |
| | | $.ajax({ |
| | | url: baseUrl+"/report/viewWorkInExport.action", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | data: JSON.stringify(param), |
| | | dataType:'json', |
| | | contentType:'application/json;charset=UTF-8', |
| | | method: 'POST', |
| | | success: function (res) { |
| | | layer.closeAll(); |
| | | if (res.code === 200) { |
| | | table.exportFile(titles,res.data,'xls'); |
| | | } else if (res.code === 403) { |
| | | top.location.href = baseUrl+"/"; |
| | | } else { |
| | | layer.msg(res.msg) |
| | | } |
| | | } |
| | | }); |
| | | window.location.href = baseUrl + "/report/download/countIn" + param; |
| | | layer.closeAll(); |
| | | // var param = { |
| | | // fields: fields, |
| | | // exportData: exportData |
| | | // }; |
| | | // $.ajax({ |
| | | // url: baseUrl + "/report/download/in", |
| | | // headers: {'token': localStorage.getItem('token')}, |
| | | // data: JSON.stringify(param), |
| | | // responseType: "blob", |
| | | // contentType: 'application/json;charset=UTF-8', |
| | | // method: 'POST', |
| | | // success: function (res) { |
| | | // layer.closeAll(); |
| | | // if (res.code === 200) { |
| | | // var blob = new Blob([response], { type: 'application/vnd.ms-excel' }); |
| | | // var link = document.createElement('a'); |
| | | // link.href = URL.createObjectURL(blob); |
| | | // link.download = 'exported_file.xls'; // 设置下载文件名 |
| | | // link.click(); |
| | | // } else if (res.code === 403) { |
| | | // top.location.href = baseUrl + "/"; |
| | | // } else { |
| | | // layer.msg(res.msg) |
| | | // } |
| | | // } |
| | | // }); |
| | | }); |
| | | break; |
| | | } |
| | |
| | | }); |
| | | layDate.render({ |
| | | elem: '.layui-laydate-range' |
| | | ,type: 'datetime' |
| | | ,range: true |
| | | , type: 'datetime' |
| | | , range: true |
| | | }); |
| | | }); |
| | | |
| | | // 关闭动作 |
| | | $(document).on('click','#data-detail-close', function () { |
| | | $(document).on('click', '#data-detail-close', function () { |
| | | parent.layer.closeAll(); |
| | | }); |
| | | |
| | | function tableReload(child) { |
| | | var searchData = {}; |
| | | $.each($('#search-box [name]').serializeArray(), function() { |
| | | $.each($('#search-box [name]').serializeArray(), function () { |
| | | searchData[this.name] = this.value; |
| | | }); |
| | | (child ? parent.tableIns : tableIns).reload({ |
| | |
| | | }, |
| | | done: function (res, curr, count) { |
| | | if (res.code === 403) { |
| | | top.location.href = baseUrl+"/"; |
| | | top.location.href = baseUrl + "/"; |
| | | } |
| | | pageCurr=curr; |
| | | pageCurr = curr; |
| | | if (res.data.length === 0 && count !== 0) { |
| | | tableIns.reload({ |
| | | where: searchData, |
| | | page: { |
| | | curr: pageCurr-1 |
| | | curr: pageCurr - 1 |
| | | } |
| | | }); |
| | | pageCurr -= 1; |
| | |
| | | for (var val in data) { |
| | | var find = el.find(":input[id='" + val + "']"); |
| | | find.val(data[val]); |
| | | if (showImg){ |
| | | if (showImg) { |
| | | var next = find.next(); |
| | | if (next.get(0)){ |
| | | if (next.get(0)) { |
| | | if (next.get(0).localName === "img") { |
| | | find.hide(); |
| | | next.attr("src", data[val]); |
| | |
| | | |
| | | function detailScreen(index) { |
| | | var detail = layer.getChildFrame('#data-detail', index); |
| | | var height = detail.height()+60; |
| | | if (height > ($(window).height()*0.9)) { |
| | | height = ($(window).height()*0.9); |
| | | var height = detail.height() + 60; |
| | | if (height > ($(window).height() * 0.9)) { |
| | | height = ($(window).height() * 0.9); |
| | | } |
| | | layer.style(index, { |
| | | top: (($(window).height()-height)/3)+"px", |
| | | height: height+'px' |
| | | top: (($(window).height() - height) / 3) + "px", |
| | | height: height + 'px' |
| | | }); |
| | | $(".layui-layer-shade").remove(); |
| | | } |
| | |
| | | fields.push(col.field); |
| | | } |
| | | }); |
| | | var exportData = {}; |
| | | var param = '?'; |
| | | $.each($('#search-box [name]').serializeArray(), function() { |
| | | exportData[this.name] = this.value; |
| | | param += this.name + '=' + this.value + '&'; |
| | | }); |
| | | var param = { |
| | | fields: fields, |
| | | exportData: exportData |
| | | }; |
| | | $.ajax({ |
| | | url: baseUrl+"/report/viewWorkOutExport.action", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | data: JSON.stringify(param), |
| | | dataType:'json', |
| | | contentType:'application/json;charset=UTF-8', |
| | | method: 'POST', |
| | | success: function (res) { |
| | | layer.closeAll(); |
| | | if (res.code === 200) { |
| | | table.exportFile(titles,res.data,'xls'); |
| | | } else if (res.code === 403) { |
| | | top.location.href = baseUrl+"/"; |
| | | } else { |
| | | layer.msg(res.msg) |
| | | } |
| | | } |
| | | }); |
| | | window.location.href = baseUrl + "/report/download/countOut" + param; |
| | | layer.closeAll(); |
| | | // var param = { |
| | | // fields: fields, |
| | | // exportData: exportData |
| | | // }; |
| | | // $.ajax({ |
| | | // url: baseUrl+"/report/download/out", |
| | | // headers: {'token': localStorage.getItem('token')}, |
| | | // data: JSON.stringify(param), |
| | | // dataType:'json', |
| | | // contentType:'application/json;charset=UTF-8', |
| | | // method: 'POST', |
| | | // success: function (res) { |
| | | // layer.closeAll(); |
| | | // if (res.code === 200) { |
| | | // table.exportFile(titles,res.data,'xls'); |
| | | // } else if (res.code === 403) { |
| | | // top.location.href = baseUrl+"/"; |
| | | // } else { |
| | | // layer.msg(res.msg) |
| | | // } |
| | | // } |
| | | // }); |
| | | }); |
| | | break; |
| | | } |
| | |
| | | fields.push(col.field); |
| | | } |
| | | }); |
| | | var exportData = {}; |
| | | var param = '?'; |
| | | $.each($('#search-box [name]').serializeArray(), function() { |
| | | exportData[this.name] = this.value; |
| | | param += this.name + '=' + this.value + '&'; |
| | | }); |
| | | var param = { |
| | | fields: fields, |
| | | exportData: exportData |
| | | }; |
| | | $.ajax({ |
| | | url: baseUrl+"/report/viewWorkInExport.action", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | data: JSON.stringify(param), |
| | | dataType:'json', |
| | | contentType:'application/json;charset=UTF-8', |
| | | method: 'POST', |
| | | success: function (res) { |
| | | layer.closeAll(); |
| | | if (res.code === 200) { |
| | | table.exportFile(titles,res.data,'xls'); |
| | | } else if (res.code === 403) { |
| | | top.location.href = baseUrl+"/"; |
| | | } else { |
| | | layer.msg(res.msg) |
| | | } |
| | | } |
| | | }); |
| | | window.location.href = baseUrl + "/report/download/in" + param; |
| | | layer.closeAll(); |
| | | // var exportData = {}; |
| | | // $.each($('#search-box [name]').serializeArray(), function() { |
| | | // exportData[this.name] = this.value; |
| | | // }); |
| | | // var param = { |
| | | // fields: fields, |
| | | // exportData: exportData |
| | | // }; |
| | | // $.ajax({ |
| | | // url: baseUrl+"/report/viewWorkInExport.action", |
| | | // headers: {'token': localStorage.getItem('token')}, |
| | | // data: JSON.stringify(param), |
| | | // dataType:'json', |
| | | // contentType:'application/json;charset=UTF-8', |
| | | // method: 'POST', |
| | | // success: function (res) { |
| | | // layer.closeAll(); |
| | | // if (res.code === 200) { |
| | | // table.exportFile(titles,res.data,'xls'); |
| | | // } else if (res.code === 403) { |
| | | // top.location.href = baseUrl+"/"; |
| | | // } else { |
| | | // layer.msg(res.msg) |
| | | // } |
| | | // } |
| | | // }); |
| | | }); |
| | | break; |
| | | } |
| | |
| | | fields.push(col.field); |
| | | } |
| | | }); |
| | | var exportData = {}; |
| | | var param = '?'; |
| | | $.each($('#search-box [name]').serializeArray(), function() { |
| | | exportData[this.name] = this.value; |
| | | param += this.name + '=' + this.value + '&'; |
| | | }); |
| | | var param = { |
| | | fields: fields, |
| | | exportData: exportData |
| | | }; |
| | | $.ajax({ |
| | | url: baseUrl+"/report/viewWorkOutExport.action", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | data: JSON.stringify(param), |
| | | dataType:'json', |
| | | contentType:'application/json;charset=UTF-8', |
| | | method: 'POST', |
| | | success: function (res) { |
| | | layer.closeAll(); |
| | | if (res.code === 200) { |
| | | table.exportFile(titles,res.data,'xls'); |
| | | } else if (res.code === 403) { |
| | | top.location.href = baseUrl+"/"; |
| | | } else { |
| | | layer.msg(res.msg) |
| | | } |
| | | } |
| | | }); |
| | | window.location.href = baseUrl + "/report/download/out" + param; |
| | | layer.closeAll(); |
| | | // var exportData = {}; |
| | | // $.each($('#search-box [name]').serializeArray(), function() { |
| | | // exportData[this.name] = this.value; |
| | | // }); |
| | | // var param = { |
| | | // fields: fields, |
| | | // exportData: exportData |
| | | // }; |
| | | // $.ajax({ |
| | | // url: baseUrl+"/report/viewWorkOutExport.action", |
| | | // headers: {'token': localStorage.getItem('token')}, |
| | | // data: JSON.stringify(param), |
| | | // dataType:'json', |
| | | // contentType:'application/json;charset=UTF-8', |
| | | // method: 'POST', |
| | | // success: function (res) { |
| | | // layer.closeAll(); |
| | | // if (res.code === 200) { |
| | | // table.exportFile(titles,res.data,'xls'); |
| | | // } else if (res.code === 403) { |
| | | // top.location.href = baseUrl+"/"; |
| | | // } else { |
| | | // layer.msg(res.msg) |
| | | // } |
| | | // } |
| | | // }); |
| | | }); |
| | | break; |
| | | } |
| | |
| | | </div> |
| | | <script type="text/html" id="toolbar"> |
| | | <div class="layui-btn-container"> |
| | | <button class="layui-btn layui-btn-normal" id="btn-pri-add" lay-event="priAdd"><i class="layui-icon"></i>增加优先级</button> |
| | | <button class="layui-btn layui-btn-normal" id="btn-pri-red" lay-event="priRed"><i class="layui-icon"></i>降低优先级</button> |
| | | <!-- <button class="layui-btn layui-btn-normal" id="btn-pri-add" lay-event="priAdd"><i class="layui-icon"></i>增加优先级</button>--> |
| | | <!-- <button class="layui-btn layui-btn-normal" id="btn-pri-red" lay-event="priRed"><i class="layui-icon"></i>降低优先级</button>--> |
| | | <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData">导出</button> |
| | | </div> |
| | | </script> |
| | |
| | | <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/handWrkMast/handWrkMast.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/handWrkMast/handWrkMast.js?v=1" charset="utf-8"></script> |
| | | |
| | | <iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe> |
| | | |
| | |
| | | <table class="layui-hide" id="workIn" lay-filter="workIn"></table> |
| | | <script type="text/html" id="toolbar"> |
| | | <div class="layui-btn-container"> |
| | | <!-- <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" >导出</button>--> |
| | | <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" >导出</button> |
| | | </div> |
| | | </script> |
| | | |
| | |
| | | <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/report/workCountIn.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/report/workCountIn.js?v=4" charset="utf-8"></script> |
| | | </body> |
| | | </html> |
| | | |
| | |
| | | <table class="layui-hide" id="workOut" lay-filter="workOut"></table> |
| | | <script type="text/html" id="toolbar"> |
| | | <div class="layui-btn-container"> |
| | | <!-- <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" >导出</button>--> |
| | | <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" >导出</button> |
| | | </div> |
| | | </script> |
| | | |
| | |
| | | <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/report/workCountOut.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/report/workCountOut.js?v=1" charset="utf-8"></script> |
| | | </body> |
| | | </html> |
| | | |
| | |
| | | <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/report/workIn.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/report/workIn.js?v=2" charset="utf-8"></script> |
| | | </body> |
| | | </html> |
| | | |
| | |
| | | <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/report/workOut.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/report/workOut.js?v=1" charset="utf-8"></script> |
| | | </body> |
| | | </html> |
| | | |