| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268 |
- # -*- coding: utf-8 -*-
- """Fix UTF-8 Chinese in meat yield analysis files."""
- import os
- ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
- def write(rel_path, content):
- path = os.path.join(ROOT, rel_path.replace("/", os.sep))
- os.makedirs(os.path.dirname(path), exist_ok=True)
- with open(path, "w", encoding="utf-8", newline="\n") as f:
- f.write(content)
- print("fixed:", rel_path)
- write(
- "ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/vo/MeatYieldBatchVo.java",
- """package com.ruoyi.web.base.domain.vo;
- import com.fasterxml.jackson.annotation.JsonFormat;
- import lombok.Data;
- import java.math.BigDecimal;
- import java.util.Date;
- /**
- * \u6279\u6b21\u51fa\u8089\u7387\u6c47\u603b
- */
- @Data
- public class MeatYieldBatchVo {
- /** \u5165\u573a\u6279\u6b21ID */
- private Long entranceBatchId;
- /** \u5165\u573a\u6279\u6b21\u53f7\uff08\u6279\u6b21ID\u5b57\u7b26\u4e32\uff09 */
- private String entranceBatchNo;
- /** \u6279\u6b21\u5165\u573a\u65f6\u95f4 */
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- private Date entranceTime;
- /** \u6bdb\u91cd\uff08\u5165\u573a\u79f0\u91cd\u5408\u8ba1\uff0ckg\uff09 */
- private BigDecimal grossWeight;
- /** \u51c0\u91cd\uff08\u5e38\u89c4\u751f\u4ea7\u79f0\u91cd\u5408\u8ba1\uff0ckg\uff09 */
- private BigDecimal netWeight;
- /** \u5e73\u5747\u51fa\u8089\u7387\uff08%\uff09 */
- private BigDecimal avgMeatYield;
- }
- """,
- )
- write(
- "ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/vo/MeatYieldDetailVo.java",
- """package com.ruoyi.web.base.domain.vo;
- import lombok.Data;
- import java.math.BigDecimal;
- /**
- * \u4e2a\u4f53\u51fa\u8089\u7387\u660e\u7ec6
- */
- @Data
- public class MeatYieldDetailVo {
- /** \u4e2a\u4f53\u7f16\u53f7 */
- private String individualNo;
- /** \u6bdb\u91cd\uff08\u5165\u573a\u79f0\u91cd\uff0ckg\uff09 */
- private BigDecimal grossWeight;
- /** \u51c0\u91cd\uff08\u5e38\u89c4\u751f\u4ea7\u79f0\u91cd\u5408\u8ba1\uff0ckg\uff09 */
- private BigDecimal netWeight;
- /** \u51fa\u8089\u7387\uff08%\uff09 */
- private BigDecimal meatYield;
- }
- """,
- )
- write(
- "ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/param/MeatYieldBatchQuery.java",
- """package com.ruoyi.web.base.domain.param;
- import lombok.Data;
- /**
- * \u6279\u6b21\u51fa\u8089\u7387\u5217\u8868\u67e5\u8be2\u53c2\u6570
- */
- @Data
- public class MeatYieldBatchQuery {
- private String orgId;
- /** \u5165\u573a\u5f00\u59cb\u65f6\u95f4 yyyy-MM-dd HH:mm:ss */
- private String beginEntranceTime;
- /** \u5165\u573a\u7ed3\u675f\u65f6\u95f4 yyyy-MM-dd HH:mm:ss */
- private String endEntranceTime;
- }
- """,
- )
- write(
- "ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/MeatYieldAnalysisMapper.java",
- """package com.ruoyi.web.base.mapper;
- import com.ruoyi.web.base.domain.param.MeatYieldBatchQuery;
- import com.ruoyi.web.base.domain.vo.MeatYieldBatchVo;
- import com.ruoyi.web.base.domain.vo.MeatYieldDetailVo;
- import org.apache.ibatis.annotations.Param;
- import java.util.List;
- /**
- * \u51fa\u8089\u7387\u5206\u6790 Mapper
- */
- public interface MeatYieldAnalysisMapper {
- List<MeatYieldBatchVo> selectBatchList(MeatYieldBatchQuery query);
- List<MeatYieldDetailVo> selectDetailList(@Param("orgId") String orgId, @Param("entranceBatchId") Long entranceBatchId);
- }
- """,
- )
- write(
- "ruoyi-admin/src/main/java/com/ruoyi/web/base/service/IMeatYieldAnalysisService.java",
- """package com.ruoyi.web.base.service;
- import com.ruoyi.web.base.domain.param.MeatYieldBatchQuery;
- import com.ruoyi.web.base.domain.vo.MeatYieldBatchVo;
- import com.ruoyi.web.base.domain.vo.MeatYieldDetailVo;
- import java.util.List;
- /**
- * \u51fa\u8089\u7387\u5206\u6790 Service
- */
- public interface IMeatYieldAnalysisService {
- List<MeatYieldBatchVo> selectBatchList(MeatYieldBatchQuery query);
- List<MeatYieldDetailVo> selectDetailList(String orgId, Long entranceBatchId);
- }
- """,
- )
- write(
- "ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/MeatYieldAnalysisController.java",
- """package com.ruoyi.web.base.controller;
- import com.ruoyi.common.core.controller.BaseController;
- import com.ruoyi.common.core.page.TableDataInfo;
- import com.ruoyi.framework.web.service.TokenService;
- import com.ruoyi.web.base.domain.param.MeatYieldBatchQuery;
- import com.ruoyi.web.base.domain.vo.MeatYieldDetailVo;
- import com.ruoyi.web.base.service.IMeatYieldAnalysisService;
- import io.swagger.annotations.ApiOperation;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- import javax.servlet.http.HttpServletRequest;
- import java.util.List;
- /**
- * \u51fa\u8089\u7387\u5206\u6790
- */
- @RestController
- @RequestMapping("/meat-yield-analysis")
- public class MeatYieldAnalysisController extends BaseController {
- @Autowired
- private IMeatYieldAnalysisService meatYieldAnalysisService;
- @Autowired
- private TokenService tokenService;
- @ApiOperation("\u6279\u6b21\u51fa\u8089\u7387\u5217\u8868\uff08\u6309\u5165\u573a\u65f6\u95f4\u8303\u56f4\uff09")
- @GetMapping("/batch-list")
- public TableDataInfo batchList(MeatYieldBatchQuery query, HttpServletRequest request) {
- query.setOrgId(tokenService.getLoginOrgId(request));
- startPage();
- return getDataTable(meatYieldAnalysisService.selectBatchList(query));
- }
- @ApiOperation("\u6279\u6b21\u51fa\u8089\u7387\u4e2a\u4f53\u660e\u7ec6\uff08\u6309\u5165\u573a\u6279\u6b21ID\uff09")
- @GetMapping("/detail-list")
- public TableDataInfo detailList(Long entranceBatchId, HttpServletRequest request) {
- String orgId = tokenService.getLoginOrgId(request);
- List<MeatYieldDetailVo> list = meatYieldAnalysisService.selectDetailList(orgId, entranceBatchId);
- TableDataInfo data = getDataTable(list);
- data.setTotal(list.size());
- return data;
- }
- }
- """,
- )
- write(
- "ruoyi-ui/src/api/production/meatYieldAnalysis.js",
- """import request from '@/utils/request'
- /** \u6279\u6b21\u51fa\u8089\u7387\u5217\u8868\uff08\u5165\u573a\u65f6\u95f4\u8303\u56f4\uff09 */
- export function listMeatYieldBatch(query) {
- return request({
- url: '/meat-yield-analysis/batch-list',
- method: 'get',
- params: query
- })
- }
- /** \u6279\u6b21\u4e2a\u4f53\u51fa\u8089\u7387\u660e\u7ec6\uff08\u5165\u573a\u6279\u6b21ID\uff09 */
- export function listMeatYieldDetail(query) {
- return request({
- url: '/meat-yield-analysis/detail-list',
- method: 'get',
- params: query
- })
- }
- """,
- )
- write(
- "sql/meat_yield_analysis_menu.sql",
- """-- \u51fa\u8089\u7387\u5206\u6790\u83dc\u5355\uff08\u7236\u83dc\u5355\uff1a\u751f\u4ea7\u7ba1\u7406 2176\uff09
- INSERT INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
- SELECT '\u51fa\u8089\u7387\u5206\u6790', 2176, 43, 'meatYieldAnalysis', 'production/meatYieldAnalysis/index', NULL, '', 1, 0, 'C', '0', '0', 'production:meatYieldAnalysis:list', 'chart', 'admin', NOW(), '', NULL, ''
- FROM DUAL
- WHERE NOT EXISTS (
- SELECT 1 FROM `sys_menu` WHERE `path` = 'meatYieldAnalysis' AND `parent_id` = 2176
- );
- """,
- )
- write(
- "sql/production_white_strip_regular_alter_individual_no.sql",
- """-- \u767d\u6761\u5e38\u89c4\u751f\u4ea7\u8868\u589e\u52a0\u4e2a\u4f53\u7f16\u53f7\u5b57\u6bb5\uff08\u51fa\u8089\u7387\u5206\u6790\u5173\u8054\u7528\uff09
- ALTER TABLE `production_white_strip_regular`
- ADD COLUMN `individual_no` varchar(64) NULL DEFAULT NULL COMMENT '\u4e2a\u4f53\u7f16\u53f7' AFTER `pig_batch`;
- CREATE INDEX `idx_pig_batch_individual_no` ON `production_white_strip_regular` (`pig_batch`, `individual_no`);
- """,
- )
- # Fix mapper XML comment only
- mapper_path = os.path.join(ROOT, "ruoyi-admin/src/main/resources/mapper/base/MeatYieldAnalysisMapper.xml")
- with open(mapper_path, "r", encoding="utf-8", errors="replace") as f:
- xml = f.read()
- bad_comment = "<!-- \u4e2a\u4f53\u51c0\u91cd\uff1a\u6bcf\u5934\u732a\u4e24\u6761\u767d\u6761\u8bb0\u5f55 weight \u6c42\u548c -->"
- # replace first garbled comment line after resultMap
- import re
- xml = re.sub(
- r"<!--[^>]*-->\s*<sql id=\"netWeightSubQuery\">",
- bad_comment + "\n <sql id=\"netWeightSubQuery\">",
- xml,
- count=1,
- )
- with open(mapper_path, "w", encoding="utf-8", newline="\n") as f:
- f.write(xml)
- print("fixed:", "ruoyi-admin/src/main/resources/mapper/base/MeatYieldAnalysisMapper.xml")
- print("done")
|