From ac744f11348928ec5d6b558502743dfac637eef7 Mon Sep 17 00:00:00 2001 From: whycq <10027870+whycq@user.noreply.gitee.com> Date: 星期三, 26 六月 2024 10:25:34 +0800 Subject: [PATCH] # --- src/main/webapp/static/js/bomMat/bomMat.js | 325 ++++++++++++++++ src/main/java/com/zy/asrs/service/BomMatService.java | 10 src/main/java/bomMat.sql | 18 src/main/java/com/zy/asrs/service/impl/BomMatServiceImpl.java | 19 src/main/java/com/zy/asrs/controller/BomMatController.java | 287 ++++++++++++++ src/main/java/com/zy/asrs/entity/BomMat.java | 240 ++++++++++++ src/main/webapp/views/bomMat/bomMat.html | 202 ++++++++++ src/main/resources/mapper/BomMatMapper.xml | 37 + src/main/webapp/views/order/view.html | 20 + src/main/java/com/zy/asrs/mapper/BomMatMapper.java | 16 10 files changed, 1,174 insertions(+), 0 deletions(-) diff --git a/src/main/java/bomMat.sql b/src/main/java/bomMat.sql new file mode 100644 index 0000000..a19d5c1 --- /dev/null +++ b/src/main/java/bomMat.sql @@ -0,0 +1,18 @@ +-- save bomMat record +-- mysql +insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'bomMat/bomMat.html', 'bomMat绠$悊', null , '2', null , '1'); + +insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'bomMat#view', '鏌ヨ', '', '3', '0', '1'); +insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'bomMat#btn-add', '鏂板', '', '3', '1', '1'); +insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'bomMat#btn-edit', '缂栬緫', '', '3', '2', '1'); +insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'bomMat#btn-delete', '鍒犻櫎', '', '3', '3', '1'); +insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'bomMat#btn-export', '瀵煎嚭', '', '3', '4', '1'); + +-- sqlserver +insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'bomMat/bomMat.html', N'bomMat绠$悊', null, '2', null, '1'); + +insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'bomMat#view', N'鏌ヨ', '', '3', '0', '1'); +insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'bomMat#btn-add', N'鏂板', '', '3', '1', '1'); +insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'bomMat#btn-edit', N'缂栬緫', '', '3', '2', '1'); +insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'bomMat#btn-delete', N'鍒犻櫎', '', '3', '3', '1'); +insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'bomMat#btn-export', N'瀵煎嚭', '', '3', '4', '1'); diff --git a/src/main/java/com/zy/asrs/controller/BomMatController.java b/src/main/java/com/zy/asrs/controller/BomMatController.java new file mode 100644 index 0000000..a89a53e --- /dev/null +++ b/src/main/java/com/zy/asrs/controller/BomMatController.java @@ -0,0 +1,287 @@ +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.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.core.common.DateUtils; +import com.core.exception.CoolException; +import com.zy.asrs.entity.BomMat; +import com.zy.asrs.service.BomMatService; +import com.core.annotations.ManagerAuth; +import com.core.common.BaseRes; +import com.core.common.Cools; +import com.core.common.R; +import com.zy.common.entity.MatExcel; +import com.zy.common.web.BaseController; +import lombok.extern.slf4j.Slf4j; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.DataFormatter; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.InputStream; +import java.net.URLEncoder; +import java.util.*; + +@Slf4j +@RestController +public class BomMatController extends BaseController { + + @Autowired + private BomMatService bomMatService; + + @RequestMapping(value = "/bomMat/{id}/auth") + @ManagerAuth + public R get(@PathVariable("id") String id) { + return R.ok(bomMatService.selectById(String.valueOf(id))); + } + + @RequestMapping(value = "/bomMat/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<String, Object> param){ + EntityWrapper<BomMat> wrapper = new EntityWrapper<>(); + excludeTrash(param); + convert(param, wrapper); + if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} + return R.ok(bomMatService.selectPage(new Page<>(curr, limit), 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 { + wrapper.like(entry.getKey(), val); + } + } + } + + @RequestMapping(value = "/bomMat/add/auth") + @ManagerAuth + public R add(BomMat bomMat) { + Date now = new Date(); + bomMat.setZpalletAnfme(bomMat.getBomAnfme() * bomMat.getBomCount()); + bomMat.setModiUser(getUserId()); + bomMat.setModiTime(now); + bomMat.setAppeUser(getUserId()); + bomMat.setAppeTime(now); + bomMatService.insert(bomMat); + return R.ok(); + } + + @RequestMapping(value = "/bomMat/update/auth") + @ManagerAuth + public R update(BomMat bomMat){ + if (Cools.isEmpty(bomMat) || null==bomMat.getId()){ + return R.error(); + } + bomMat.setModiUser(getUserId()); + bomMat.setModiTime(new Date()); + bomMatService.updateById(bomMat); + return R.ok(); + } + + @RequestMapping(value = "/bomMat/delete/auth") + @ManagerAuth + public R delete(@RequestParam(value="ids[]") Long[] ids){ + for (Long id : ids){ + bomMatService.deleteById(id); + } + return R.ok(); + } + + @RequestMapping(value = "/bomMat/export/auth") + @ManagerAuth + public R export(@RequestBody JSONObject param){ + EntityWrapper<BomMat> wrapper = new EntityWrapper<>(); + List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class); + Map<String, Object> map = excludeTrash(param.getJSONObject("bomMat")); + convert(map, wrapper); + List<BomMat> list = bomMatService.selectList(wrapper); + return R.ok(exportSupport(list, fields)); + } + + @RequestMapping(value = "/bomMatQuery/auth") + @ManagerAuth + public R query(String condition) { + EntityWrapper<BomMat> wrapper = new EntityWrapper<>(); + wrapper.like("id", condition); + Page<BomMat> page = bomMatService.selectPage(new Page<>(0, 10), wrapper); + List<Map<String, Object>> result = new ArrayList<>(); + for (BomMat bomMat : page.getRecords()){ + Map<String, Object> map = new HashMap<>(); + map.put("id", bomMat.getId()); + map.put("value", bomMat.getId()); + result.add(map); + } + return R.ok(result); + } + + @RequestMapping(value = "/bomMat/check/column/auth") + @ManagerAuth + public R query(@RequestBody JSONObject param) { + Wrapper<BomMat> wrapper = new EntityWrapper<BomMat>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val")); + if (null != bomMatService.selectOne(wrapper)){ + return R.parse(BaseRes.REPEAT).add(getComment(BomMat.class, String.valueOf(param.get("key")))); + } + return R.ok(); + } + + /** + * excel瀵煎叆 + */ + @PostMapping(value = "/bomMat/excel/import/auth") + @ManagerAuth(memo = "缁勪欢妗fexcel瀵煎叆") + @Transactional + public R cstmrExcelImport(MultipartFile file) throws IOException { + InputStream inStream = file.getInputStream(); + String fileMime = file.getContentType(); + int excelVersion = 2007; + if ("application/vnd.ms-excel".equals(fileMime)) { + excelVersion = 2003; + } + Workbook book = null; + try { + if (excelVersion == 2003) { + book = new HSSFWorkbook(inStream); + } + else { // 褰� excel 鏄� 2007 鏃� + book = new XSSFWorkbook(inStream); + } + } catch (Exception e) { + log.error("fail", e); + return R.error("瀵煎叆鏂囦欢鏍煎紡閿欒锛岃浣跨敤xls鍚庣紑鐨勬枃浠讹紒"); + } + + Sheet sheet = book.getSheetAt(0); + int totalRows = sheet.getLastRowNum() + 1; // 鎬� + Long userId = getUserId(); + Date now = new Date(); + DataFormatter dataFormatter = new DataFormatter(); + + for (int i = 1; i < totalRows; i++) { + Row row = sheet.getRow(i); + // 閮ㄤ欢鍝佸彿 + String unitNum = dataFormatter.formatCellValue(row.getCell(0)); + // 閮ㄤ欢鍝佸悕 + String unitName = dataFormatter.formatCellValue(row.getCell(1)); + // 閮ㄤ欢瑙勬牸 + String unitSpace = dataFormatter.formatCellValue(row.getCell(2)); + // 缁勪欢鍝佸彿 + String bomNum = dataFormatter.formatCellValue(row.getCell(3)); + // 缁勪欢鍝佸悕 + String bomName = dataFormatter.formatCellValue(row.getCell(4)); + // 缁勪欢瑙勬牸 + String bomSpace = dataFormatter.formatCellValue(row.getCell(5)); + // 鍏冧欢鍝佸彿 + String elementNum = dataFormatter.formatCellValue(row.getCell(6)); + // 鍏冧欢鍝佸悕 + String elementName = dataFormatter.formatCellValue(row.getCell(7)); + // 鍏冧欢瑙勬牸 + String elementSpace = dataFormatter.formatCellValue(row.getCell(8)); + // 澶囨敞 + String memo = dataFormatter.formatCellValue(row.getCell(9)); + // 濂楁暟 + Double bomCount = Double.parseDouble(dataFormatter.formatCellValue(row.getCell(10))); + // 缁勬垚鐢ㄩ噺 + Double bomAnfme = Double.parseDouble(dataFormatter.formatCellValue(row.getCell(11))); + BomMat bomMat = bomMatService.selectByThreeCode(unitNum, bomNum, elementNum); + // 娌℃湁灏辨柊寤猴紝鏈夊氨鏇存柊 + if (Cools.isEmpty(bomMat)) { + createBomMat(unitNum, unitName, unitSpace, bomNum, bomName, bomSpace, elementNum, elementName, elementSpace, memo, bomCount, bomAnfme,getUserId()); + } else { + updateBomMat(bomMat,unitName,unitSpace,bomName,bomSpace,elementName,elementSpace,memo,bomCount,bomAnfme,userId); + } + + } + return R.ok(); + } + + /** + * excel瀵煎叆妯℃澘涓嬭浇 + */ + @RequestMapping(value = "/bomMat/excel/import/mould") + public void matExcelImportMould(HttpServletResponse response) throws IOException { + List<BomMat> excels = new ArrayList<>(); + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + String fileName = URLEncoder.encode("缁勪欢妗fExcel瀵煎叆妯℃澘", "UTF-8"); + response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); + EasyExcel.write(response.getOutputStream(), BomMat.class) + .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) + .sheet("sheet1") + .doWrite(excels); + } + + private void createBomMat(String unitNum,String unitName,String unitSpace, + String bomNum,String bomName,String bomSpace, + String elementNum, String elementName,String elementSpace, + String memo,Double bomCount,Double bomAnfme,Long userId) { + Date now = new Date(); + BomMat bomMat = new BomMat(); + bomMat.setUnitNum(unitNum); + bomMat.setUnitName(unitName); + bomMat.setUnitSpace(unitSpace); + + bomMat.setBomNum(bomNum); + bomMat.setBomName(bomName); + bomMat.setBomSpace(bomSpace); + + bomMat.setElementNum(elementNum); + bomMat.setElementName(elementName); + bomMat.setElementSpace(elementSpace); + + bomMat.setMemo(memo); + bomMat.setBomCount(bomCount); + bomMat.setBomAnfme(bomAnfme); + bomMat.setZpalletAnfme(bomAnfme * bomCount); + + bomMat.setModiUser(userId); + bomMat.setModiTime(now); + bomMat.setAppeUser(userId); + bomMat.setAppeTime(now); + + bomMat.setIsDeleted((short)0); + if (!bomMatService.insert(bomMat)) { + throw new CoolException("鏂板缓缁勪欢妗f澶辫触锛�"); + } + } + private void updateBomMat(BomMat bomMat,String unitName,String unitSpace,String bomName,String bomSpace,String elementName,String elementSpace,String memo,Double bomCount,Double bomAnfme,Long userId) { + Date now = new Date(); + bomMat.setUnitName(unitName); + bomMat.setUnitSpace(unitSpace); + bomMat.setBomName(bomName); + bomMat.setBomSpace(bomSpace); + bomMat.setElementName(elementName); + bomMat.setElementSpace(elementSpace); + bomMat.setMemo(memo); + bomMat.setBomCount(bomCount); + bomMat.setBomAnfme(bomAnfme); + bomMat.setZpalletAnfme(bomCount*bomAnfme); + bomMat.setModiUser(userId); + bomMat.setModiTime(now); + if (!bomMatService.update(bomMat,new EntityWrapper<BomMat>().eq("unit_num",bomMat.getUnitNum()).eq("bom_num",bomMat.getBomNum()).eq("element_num",bomMat.getElementNum()))) { + throw new CoolException("鏇存柊缁勪欢妗f澶辫触锛�"); + } + + } +} diff --git a/src/main/java/com/zy/asrs/entity/BomMat.java b/src/main/java/com/zy/asrs/entity/BomMat.java new file mode 100644 index 0000000..b30acfe --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/BomMat.java @@ -0,0 +1,240 @@ +package com.zy.asrs.entity; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.enums.IdType; +import com.baomidou.mybatisplus.annotations.TableField; +import java.text.SimpleDateFormat; +import java.util.Date; +import org.springframework.format.annotation.DateTimeFormat; +import java.text.SimpleDateFormat; +import java.util.Date; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +@Data +@TableName("man_bom_mat") +public class BomMat implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * ID + */ + @ApiModelProperty(value= "ID") + @TableId(value = "id", type = IdType.AUTO) + @ExcelIgnore + private Long id; + + /** + * 閮ㄤ欢鍝佸彿 + */ + @ApiModelProperty(value= "閮ㄤ欢鍝佸彿") + @TableField("unit_num") + @ExcelProperty(value = "閮ㄤ欢鍝佸彿") + private String unitNum; + + /** + * 閮ㄤ欢鍝佸悕 + */ + @ApiModelProperty(value= "閮ㄤ欢鍝佸悕") + @TableField("unit_name") + @ExcelProperty(value = "閮ㄤ欢鍝佸悕") + private String unitName; + + /** + * 閮ㄤ欢瑙勬牸 + */ + @ApiModelProperty(value= "閮ㄤ欢瑙勬牸") + @TableField("unit_space") + @ExcelProperty(value = "閮ㄤ欢瑙勬牸") + private String unitSpace; + + /** + * 缁勪欢鍝佸彿 + */ + @ApiModelProperty(value= "缁勪欢鍝佸彿") + @TableField("bom_num") + @ExcelProperty(value = "缁勪欢鍝佸彿") + private String bomNum; + + /** + * 缁勪欢鍝佸悕 + */ + @ApiModelProperty(value= "缁勪欢鍝佸悕") + @TableField("bom_name") + @ExcelProperty(value = "缁勪欢鍝佸悕") + private String bomName; + + /** + * 缁勪欢瑙勬牸 + */ + @ApiModelProperty(value= "缁勪欢瑙勬牸") + @TableField("bom_space") + @ExcelProperty(value = "缁勪欢瑙勬牸") + private String bomSpace; + + /** + * 鍏冧欢鍝佸彿 + */ + @ApiModelProperty(value= "鍏冧欢鍝佸彿") + @TableField("element_num") + @ExcelProperty(value = "鍏冧欢鍝佸彿") + private String elementNum; + + /** + * 鍏冧欢鍝佸悕 + */ + @ApiModelProperty(value= "鍏冧欢鍝佸悕") + @TableField("element_name") + @ExcelProperty(value = "鍏冧欢鍝佸悕") + private String elementName; + + /** + * 鍏冧欢瑙勬牸 + */ + @ApiModelProperty(value= "鍏冧欢瑙勬牸") + @TableField("element_space") + @ExcelProperty(value = "鍏冧欢瑙勬牸") + private String elementSpace; + + /** + * 澶囨敞 + */ + @ApiModelProperty(value= "澶囨敞") + @ExcelProperty(value = "澶囨敞") + private String memo; + + /** + * 濂楁暟 + */ + @ApiModelProperty(value= "濂楁暟") + @TableField("bom_count") + @ExcelProperty(value = "濂楁暟") + private Double bomCount; + + /** + * 缁勬垚鐢ㄩ噺 + */ + @ApiModelProperty(value= "缁勬垚鐢ㄩ噺") + @TableField("bom_anfme") + @ExcelProperty(value = "缁勬垚鐢ㄩ噺") + private Double bomAnfme; + + /** + * 鎵樼洏鏁伴噺 + */ + @ApiModelProperty(value= "鎵樼洏鏁伴噺") + @TableField("zpallet_anfme") + @ExcelProperty(value = "鎵樼洏鏁伴噺") + @ExcelIgnore + private Double zpalletAnfme; + + /** + * 淇敼浜哄憳 + */ + @ApiModelProperty(value= "淇敼浜哄憳") + @TableField("modi_user") + @ExcelIgnore + private Long modiUser; + + /** + * 淇敼鏃堕棿 + */ + @ApiModelProperty(value= "淇敼鏃堕棿") + @TableField("modi_time") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ExcelIgnore + private Date modiTime; + + /** + * 娣诲姞浜哄憳 + */ + @ApiModelProperty(value= "娣诲姞浜哄憳") + @TableField("appe_user") + @ExcelIgnore + private Long appeUser; + + /** + * 娣诲姞鏃堕棿 + */ + @ApiModelProperty(value= "娣诲姞鏃堕棿") + @TableField("appe_time") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ExcelIgnore + private Date appeTime; + + /** + * 鏄惁鍒犻櫎 + */ + @ApiModelProperty(value= "鏄惁鍒犻櫎") + @TableField("is_deleted") + @ExcelIgnore + private Short isDeleted; + + public BomMat() {} + + public BomMat(Long id,String unitNum,String unitName,String unitSpace,String bomNum,String bomName,String bomSpace,String elementNum,String elementName,String elementSpace,String memo,Double bomCount,Double bomAnfme,Double zpalletAnfme,Long modiUser,Date modiTime,Long appeUser,Date appeTime,Short isDeleted) { + this.id = id; + this.unitNum = unitNum; + this.unitName = unitName; + this.unitSpace = unitSpace; + this.bomNum = bomNum; + this.bomName = bomName; + this.bomSpace = bomSpace; + this.elementNum = elementNum; + this.elementName = elementName; + this.elementSpace = elementSpace; + this.memo = memo; + this.bomCount = bomCount; + this.bomAnfme = bomAnfme; + this.zpalletAnfme = zpalletAnfme; + this.modiUser = modiUser; + this.modiTime = modiTime; + this.appeUser = appeUser; + this.appeTime = appeTime; + this.isDeleted = isDeleted; + } + +// BomMat bomMat = new BomMat( +// null, // ID[闈炵┖] +// null, // 閮ㄤ欢鍝佸彿 +// null, // 閮ㄤ欢鍝佸悕 +// null, // 閮ㄤ欢瑙勬牸 +// null, // 缁勪欢鍝佸彿 +// null, // 缁勪欢鍝佸悕 +// null, // 缁勪欢瑙勬牸 +// null, // 鍏冧欢鍝佸彿 +// null, // 鍏冧欢鍝佸悕 +// null, // 鍏冧欢瑙勬牸 +// null, // 澶囨敞 +// null, // 濂楁暟 +// null, // 缁勬垚鐢ㄩ噺 +// null, // 鎵樼洏鏁伴噺 +// null, // 淇敼浜哄憳 +// null, // 淇敼鏃堕棿 +// null, // 娣诲姞浜哄憳 +// null, // 娣诲姞鏃堕棿 +// null // 鏄惁鍒犻櫎 +// ); + + public String getModiTime$(){ + if (Cools.isEmpty(this.modiTime)){ + return ""; + } + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime); + } + + public String getAppeTime$(){ + if (Cools.isEmpty(this.appeTime)){ + return ""; + } + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime); + } + + +} diff --git a/src/main/java/com/zy/asrs/mapper/BomMatMapper.java b/src/main/java/com/zy/asrs/mapper/BomMatMapper.java new file mode 100644 index 0000000..0364814 --- /dev/null +++ b/src/main/java/com/zy/asrs/mapper/BomMatMapper.java @@ -0,0 +1,16 @@ +package com.zy.asrs.mapper; + +import com.zy.asrs.entity.BomMat; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +@Mapper +@Repository +public interface BomMatMapper extends BaseMapper<BomMat> { + + BomMat selectByThreeCode(@Param("unit_num")String unitNum, @Param("bom_num")String bomNum, @Param("element_num")String elementNum); + + +} diff --git a/src/main/java/com/zy/asrs/service/BomMatService.java b/src/main/java/com/zy/asrs/service/BomMatService.java new file mode 100644 index 0000000..6818afe --- /dev/null +++ b/src/main/java/com/zy/asrs/service/BomMatService.java @@ -0,0 +1,10 @@ +package com.zy.asrs.service; + +import com.zy.asrs.entity.BomMat; +import com.baomidou.mybatisplus.service.IService; + +public interface BomMatService extends IService<BomMat> { + + BomMat selectByThreeCode(String unitNum, String bomNum, String elementNum); + +} diff --git a/src/main/java/com/zy/asrs/service/impl/BomMatServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BomMatServiceImpl.java new file mode 100644 index 0000000..5d216c9 --- /dev/null +++ b/src/main/java/com/zy/asrs/service/impl/BomMatServiceImpl.java @@ -0,0 +1,19 @@ +package com.zy.asrs.service.impl; + +import com.zy.asrs.mapper.BomMatMapper; +import com.zy.asrs.entity.BomMat; +import com.zy.asrs.service.BomMatService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import java.util.Date; + +@Service("bomMatService") +public class BomMatServiceImpl extends ServiceImpl<BomMatMapper, BomMat> implements BomMatService { + + @Override + public BomMat selectByThreeCode(String unitNum, String bomNum, String elementNum) { + return this.baseMapper.selectByThreeCode(unitNum,bomNum,elementNum); + } + +} diff --git a/src/main/resources/mapper/BomMatMapper.xml b/src/main/resources/mapper/BomMatMapper.xml new file mode 100644 index 0000000..fc58ef6 --- /dev/null +++ b/src/main/resources/mapper/BomMatMapper.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.zy.asrs.mapper.BomMatMapper"> + + <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> + <resultMap id="BaseResultMap" type="com.zy.asrs.entity.BomMat"> + <result column="id" property="id" /> + <result column="unit_num" property="unitNum" /> + <result column="unit_name" property="unitName" /> + <result column="unit_space" property="unitSpace" /> + <result column="bom_num" property="bomNum" /> + <result column="bom_name" property="bomName" /> + <result column="bom_space" property="bomSpace" /> + <result column="element_num" property="elementNum" /> + <result column="element_name" property="elementName" /> + <result column="element_space" property="elementSpace" /> + <result column="memo" property="memo" /> + <result column="bom_count" property="bomCount" /> + <result column="bom_anfme" property="bomAnfme" /> + <result column="zpallet_anfme" property="zpalletAnfme" /> + <result column="modi_user" property="modiUser" /> + <result column="modi_time" property="modiTime" /> + <result column="appe_user" property="appeUser" /> + <result column="appe_time" property="appeTime" /> + <result column="is_deleted" property="isDeleted" /> + + </resultMap> + + <select id="selectByThreeCode" resultMap="BaseResultMap"> + select top 1 * from man_bom_mat + where 1=1 + and unit_num = #{unit_num} + and bom_num = #{bom_num} + and element_num = #{element_num} + </select> + +</mapper> diff --git a/src/main/webapp/static/js/bomMat/bomMat.js b/src/main/webapp/static/js/bomMat/bomMat.js new file mode 100644 index 0000000..3c78330 --- /dev/null +++ b/src/main/webapp/static/js/bomMat/bomMat.js @@ -0,0 +1,325 @@ +var pageCurr; +var admin; +var insTb +layui.config({ + base: baseUrl + "/static/layui/lay/modules/" +}).use(['table','laydate', 'form', 'admin'], function(){ + var table = layui.table; + var $ = layui.jquery; + var layer = layui.layer; + var layDate = layui.laydate; + var form = layui.form; + admin = layui.admin; + + // 鏁版嵁娓叉煋 + insTb = table.render({ + elem: '#bomMat', + headers: {token: localStorage.getItem('token')}, + url: baseUrl+'/bomMat/list/auth', + page: true, + limit: 15, + limits: [15, 30, 50, 100, 200, 500], + toolbar: '#toolbar', + cellMinWidth: 50, + height: 'full-120', + cols: [[ + {type: 'checkbox'} + ,{field: 'id', align: 'center',title: 'ID',hide: true} + ,{field: 'unitNum', align: 'center',title: '閮ㄤ欢鍝佸彿'} + ,{field: 'unitName', align: 'center',title: '閮ㄤ欢鍝佸悕'} + ,{field: 'unitSpace', align: 'center',title: '閮ㄤ欢瑙勬牸'} + ,{field: 'bomNum', align: 'center',title: '缁勪欢鍝佸彿'} + ,{field: 'bomName', align: 'center',title: '缁勪欢鍝佸悕'} + ,{field: 'bomSpace', align: 'center',title: '缁勪欢瑙勬牸'} + ,{field: 'elementNum', align: 'center',title: '鍏冧欢鍝佸彿'} + ,{field: 'elementName', align: 'center',title: '鍏冧欢鍝佸悕'} + ,{field: 'elementSpace', align: 'center',title: '鍏冧欢瑙勬牸'} + ,{field: 'memo', align: 'center',title: '澶囨敞'} + ,{field: 'bomCount', align: 'center',title: '濂楁暟'} + ,{field: 'bomAnfme', align: 'center',title: '缁勬垚鐢ㄩ噺'} + ,{field: 'zpalletAnfme', align: 'center',title: '鎵樼洏鏁伴噺'} + ,{field: 'modiUser', align: 'center',title: '淇敼浜哄憳',hide: true} + ,{field: 'modiTime$', align: 'center',title: '淇敼鏃堕棿',hide: true} + ,{field: 'appeUser', align: 'center',title: '娣诲姞浜哄憳',hide: true} + ,{field: 'appeTime$', align: 'center',title: '娣诲姞鏃堕棿',hide: true} + ,{field: 'isDeleted', align: 'center',title: '鏄惁鍒犻櫎',hide: true} + + ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:120} + ]], + request: { + pageName: 'curr', + pageSize: 'limit' + }, + parseData: function (res) { + return { + 'code': res.code, + 'msg': res.msg, + 'count': res.data.total, + 'data': res.data.records + } + }, + response: { + statusCode: 200 + }, + done: function(res, curr, count) { + if (res.code === 403) { + top.location.href = baseUrl+"/"; + } + pageCurr=curr; + limit(); + } + }); + + // 鐩戝惉鎺掑簭浜嬩欢 + table.on('sort(bomMat)', function (obj) { + var searchData = {}; + $.each($('#search-box [name]').serializeArray(), function() { + searchData[this.name] = this.value; + }); + searchData['orderByField'] = obj.field; + searchData['orderByType'] = obj.type; + insTb.reload({ + where: searchData, + page: {curr: 1} + }); + }); + + // 鐩戝惉澶村伐鍏锋爮浜嬩欢 + table.on('toolbar(bomMat)', function (obj) { + var checkStatus = table.checkStatus(obj.config.id).data; + switch(obj.event) { + case 'addData': + showEditModel(); + break; + case 'deleteData': + if (checkStatus.length === 0) { + layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2}); + return; + } + del(checkStatus.map(function (d) { + return d.id; + })); + break; + case 'importData': + $("#importExcel").trigger("click"); + break; + case 'excelMouldDownload': + excelMouldDownload(); + break; + case 'exportData': + admin.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 exportData = {}; + $.each($('#search-box [name]').serializeArray(), function() { + exportData[this.name] = this.value; + }); + var param = { + 'bomMat': exportData, + 'fields': fields + }; + $.ajax({ + url: baseUrl+"/bomMat/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, {icon: 2}) + } + } + }); + }); + break; + } + }); + + // 鐩戝惉琛屽伐鍏蜂簨浠� + table.on('tool(bomMat)', function(obj){ + var data = obj.data; + switch (obj.event) { + case 'edit': + showEditModel(data); + break; + case "del": + del([data.id]); + break; + } + }); + + /* 寮圭獥 - 鏂板銆佷慨鏀� */ + function showEditModel(mData) { + admin.open({ + type: 1, + area: '600px', + title: (mData ? '淇敼' : '娣诲姞') + '缁勪欢', + content: $('#editDialog').html(), + success: function (layero, dIndex) { + layDateRender(mData); + form.val('detail', mData); + form.on('submit(editSubmit)', function (data) { + var loadIndex = layer.load(2); + $.ajax({ + url: baseUrl+"/bomMat/"+(mData?'update':'add')+"/auth", + headers: {'token': localStorage.getItem('token')}, + data: data.field, + method: 'POST', + success: function (res) { + layer.close(loadIndex); + if (res.code === 200){ + layer.close(dIndex); + layer.msg(res.msg, {icon: 1}); + tableReload(); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + }else { + layer.msg(res.msg, {icon: 2}); + } + } + }) + return false; + }); + $(layero).children('.layui-layer-content').css('overflow', 'visible'); + layui.form.render('select'); + } + }); + } + + /* 鍒犻櫎 */ + function del(ids) { + layer.confirm('纭畾瑕佸垹闄ら�変腑鏁版嵁鍚楋紵', { + skin: 'layui-layer-admin', + shade: .1 + }, function (i) { + layer.close(i); + var loadIndex = layer.load(2); + $.ajax({ + url: baseUrl+"/bomMat/delete/auth", + headers: {'token': localStorage.getItem('token')}, + data: {ids: ids}, + method: 'POST', + success: function (res) { + layer.close(loadIndex); + if (res.code === 200){ + layer.msg(res.msg, {icon: 1}); + tableReload(); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + } else { + layer.msg(res.msg, {icon: 2}); + } + } + }) + }); + } + + // 鎼滅储 + form.on('submit(search)', function (data) { + pageCurr = 1; + tableReload(false); + }); + + // 閲嶇疆 + form.on('submit(reset)', function (data) { + pageCurr = 1; + clearFormVal($('#search-box')); + tableReload(false); + }); + + // 鏃堕棿閫夋嫨鍣� + function layDateRender(data) { + setTimeout(function () { + layDate.render({ + elem: '#modiTime\\$', + type: 'datetime', + value: data!==undefined?data['modiTime\\$']:null + }); + layDate.render({ + elem: '#appeTime\\$', + type: 'datetime', + value: data!==undefined?data['appeTime\\$']:null + }); + + }, 300); + } + layDateRender(); + +}); + +// 鍏抽棴鍔ㄤ綔 +$(document).on('click','#data-detail-close', function () { + parent.layer.closeAll(); +}); + +function upload(obj){ + if(!obj.files) { + return; + } + var file = obj.files[0]; + admin.confirm('纭瀵煎叆 [' + file.name +'] 鏂囦欢鍚楋紵', function (index) { + layer.load(1, {shade: [0.1,'#fff']}); + var url = baseUrl + "/bomMat/excel/import/auth"; + var form = new FormData(); + form.append("file", file); + let xhr = new XMLHttpRequest(); + xhr.open("post", url, true); + xhr.setRequestHeader('token', localStorage.getItem('token')); + xhr.onload = uploadComplete; + xhr.onerror = uploadFailed; + xhr.onloadend = function () { + layer.closeAll('loading'); + }; + // xhr.upload.onprogress = progressFunction; + xhr.upload.onloadstart = function(){ + ot = new Date().getTime(); + oloaded = 0; + }; + xhr.send(form); + }, function(index){ + }); +} +function uploadComplete(evt) { + let res = JSON.parse(evt.target.responseText); + if(res.code === 200) { + layer.msg(res.msg, {icon: 1}); + insTb.reload({page: {curr: 1}}); + } else { + alert(res.msg); + // layer.msg(res.msg, {icon: 2}); + } +} +function uploadFailed(evt) { + let res = JSON.parse(evt.target.responseText); + alert(res.msg); + // layer.msg(res.msg, {icon: 2}); +} + +function excelMouldDownload(){ + layer.load(1, {shade: [0.1,'#fff']}); + location.href = baseUrl + "/bomMat/excel/import/mould"; + layer.closeAll('loading'); +} + +function tableReload(child) { + var searchData = {}; + $.each($('#search-box [name]').serializeArray(), function() { + searchData[this.name] = this.value; + }); + insTb.reload({ + where: searchData, + page: {curr: pageCurr} + }); +} diff --git a/src/main/webapp/views/bomMat/bomMat.html b/src/main/webapp/views/bomMat/bomMat.html new file mode 100644 index 0000000..6746fbb --- /dev/null +++ b/src/main/webapp/views/bomMat/bomMat.html @@ -0,0 +1,202 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <title></title> + <meta name="renderer" content="webkit"> + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> + <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> + <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all"> + <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all"> + <link rel="stylesheet" href="../../static/css/cool.css" media="all"> +</head> +<body> + +<div class="layui-fluid"> + <div class="layui-card"> + <div class="layui-card-body"> + <div class="layui-form toolbar" id="search-box"> + <div class="layui-form-item"> + <div class="layui-inline"> + <div class="layui-input-inline mr0"> + <input name="unit_num" class="layui-input" type="text" placeholder="閮ㄤ欢鍝佸彿"/> + </div> + </div> + <div class="layui-inline"> + <div class="layui-input-inline mr0"> + <input name="unit_name" class="layui-input" type="text" placeholder="閮ㄤ欢鍝佸悕"/> + </div> + </div> + <!--<div class="layui-inline">--> + <!-- <div class="layui-input-inline mr0">--> + <!-- <input name="unit_space" class="layui-input" type="text" placeholder="閮ㄤ欢瑙勬牸"/>--> + <!-- </div>--> + <!--</div>--> + + <div class="layui-inline"> + <div class="layui-input-inline mr0"> + <input name="bom_num" class="layui-input" type="text" placeholder="缁勪欢鍝佸彿"/> + </div> + </div> + <div class="layui-inline"> + <div class="layui-input-inline mr0"> + <input name="bom_name" class="layui-input" type="text" placeholder="缁勪欢鍝佸悕"/> + </div> + </div> + <!--<div class="layui-inline">--> + <!-- <div class="layui-input-inline mr0">--> + <!-- <input name="bom_num" class="layui-input" type="text" placeholder="缁勪欢瑙勬牸"/>--> + <!-- </div>--> + <!--</div>--> + + <div class="layui-inline"> + <div class="layui-input-inline mr0"> + <input name="element_num" class="layui-input" type="text" placeholder="鍏冧欢鍝佸彿"/> + </div> + </div> + <div class="layui-inline"> + <div class="layui-input-inline mr0"> + <input name="element_name" class="layui-input" type="text" placeholder="鍏冧欢鍝佸悕"/> + </div> + </div> + <!--<div class="layui-inline">--> + <!-- <div class="layui-input-inline mr0">--> + <!-- <input name="element_num" class="layui-input" type="text" placeholder="鍏冧欢瑙勬牸"/>--> + <!-- </div>--> + <!--</div>--> + <div class="layui-inline">  + <button class="layui-btn icon-btn" lay-filter="search" lay-submit> + <i class="layui-icon"></i>鎼滅储 + </button> + <button class="layui-btn icon-btn" lay-filter="reset" lay-submit> + <i class="layui-icon"></i>閲嶇疆 + </button> + </div> + </div> + </div> + <table class="layui-hide" id="bomMat" lay-filter="bomMat"></table> + </div> + </div> +</div> + +<script type="text/html" id="toolbar"> + <div class="layui-btn-container"> + <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button> + <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-delete" lay-event="deleteData">鍒犻櫎</button> + <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-mouldDownload" lay-event="excelMouldDownload" style="float: right">妯℃澘涓嬭浇</button> + <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="float: right">瀵煎嚭</button> + <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-import" lay-event="importData" style="float: right">瀵煎叆</button> + <input style="display:none" id="importExcel" type="file" onchange="upload(this)" > + </div> +</script> + +<script type="text/html" id="operate"> + <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a> + <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">鍒犻櫎</a> +</script> + +<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></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/bomMat/bomMat.js" charset="utf-8"></script> +</body> +<!-- 琛ㄥ崟寮圭獥 --> +<script type="text/html" id="editDialog"> + <form id="detail" lay-filter="detail" class="layui-form admin-form model-form"> + <input name="id" type="hidden"> + <div class="layui-row"> + <div class="layui-col-md6"> + <div class="layui-form-item"> + <label class="layui-form-label layui-form-required">閮ㄤ欢鍝佸彿: </label> + <div class="layui-input-block"> + <input class="layui-input" name="unitNum" placeholder="璇疯緭鍏ラ儴浠跺搧鍙�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label layui-form-required">閮ㄤ欢鍝佸悕: </label> + <div class="layui-input-block"> + <input class="layui-input" name="unitName" placeholder="璇疯緭鍏ラ儴浠跺搧鍚�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">閮ㄤ欢瑙勬牸: </label> + <div class="layui-input-block"> + <input class="layui-input" name="unitSpace" placeholder="璇疯緭鍏ラ儴浠惰鏍�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label layui-form-required">缁勪欢鍝佸彿: </label> + <div class="layui-input-block"> + <input class="layui-input" name="bomNum" placeholder="璇疯緭鍏ョ粍浠跺搧鍙�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label layui-form-required">缁勪欢鍝佸悕: </label> + <div class="layui-input-block"> + <input class="layui-input" name="bomName" placeholder="璇疯緭鍏ョ粍浠跺搧鍚�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">缁勪欢瑙勬牸: </label> + <div class="layui-input-block"> + <input class="layui-input" name="bomSpace" placeholder="璇疯緭鍏ョ粍浠惰鏍�"> + </div> + </div> + + </div> + <div class="layui-col-md6"> + + <div class="layui-form-item"> + <label class="layui-form-label layui-form-required">鍏冧欢鍝佸彿: </label> + <div class="layui-input-block"> + <input class="layui-input" name="elementNum" placeholder="璇疯緭鍏ュ厓浠跺搧鍙�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label layui-form-required">鍏冧欢鍝佸悕: </label> + <div class="layui-input-block"> + <input class="layui-input" name="elementName" placeholder="璇疯緭鍏ュ厓浠跺搧鍚�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍏冧欢瑙勬牸: </label> + <div class="layui-input-block"> + <input class="layui-input" name="elementSpace" placeholder="璇疯緭鍏ュ厓浠惰鏍�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label layui-form-required">濂楁暟: </label> + <div class="layui-input-block"> + <input class="layui-input" name="bomCount" placeholder="璇疯緭鍏ュ鏁�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label layui-form-required">缁勬垚鐢ㄩ噺: </label> + <div class="layui-input-block"> + <input class="layui-input" name="bomAnfme" placeholder="璇疯緭鍏ョ粍鎴愮敤閲�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label ">澶囨敞: </label> + <div class="layui-input-block"> + <input class="layui-input" name="memo" placeholder="璇疯緭鍏ュ娉�"> + </div> + </div> + + </div> + + </div> + <hr class="layui-bg-gray"> + <div class="layui-form-item text-right"> + <button class="layui-btn" lay-filter="editSubmit" lay-submit="">淇濆瓨</button> + <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button> + </div> + </form> +</script> +</html> + + + + + diff --git a/src/main/webapp/views/order/view.html b/src/main/webapp/views/order/view.html new file mode 100644 index 0000000..f24e2d9 --- /dev/null +++ b/src/main/webapp/views/order/view.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <title>Title</title> +</head> +<body> + <table border="1" cellspacing="0"> + <tr><th colspan="8">娴欐睙娴风洂鍔涙簮鐜繚绉戞妧鑲′唤鏈夐檺鍏徃</th></tr> + <tr><th colspan="8">鏉愭枡鍑哄簱鍗�</th></tr> + <tr><td>鍑哄簱鍗曞彿</td><td colspan="2">HAND1056256517314969600</td><td>鍑哄簱鏃ユ湡</td><td colspan="2">2022-12-24</td><td>浠撳簱</td><td>1鍙蜂粨搴�</td></tr> + <tr> + <td>搴忓彿</td><td>鍟嗗搧缂栫爜</td><td>鍟嗗搧鍚嶇О</td><td>鍚堝悓鍙�</td><td>瑙勬牸鍨嬪彿</td><td>鍗曚綅</td><td>鏁伴噺</td><td>澶囨敞</td> + </tr> + <tr></tr> + <tr><td>鍚堣</td><td colspan="5"></td><td></td><td></td></tr> + <tr><td>鍒跺崟浜�</td><td></td><td>瀹℃牳浜�</td><td></td><td>澶嶆牳浜�</td><td colspan="3"></td></tr> + </table> +</body> +</html> \ No newline at end of file -- Gitblit v1.9.1