home 2 lat temu
rodzic
commit
b784f3ae77

+ 180 - 0
hx-common/code-generator/src/main/java/com/fjhx/modular/Storage.java

@@ -0,0 +1,180 @@
+package com.fjhx.modular;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.generator.AutoGenerator;
+import com.baomidou.mybatisplus.generator.InjectionConfig;
+import com.baomidou.mybatisplus.generator.config.*;
+import com.baomidou.mybatisplus.generator.config.po.TableFill;
+import com.baomidou.mybatisplus.generator.config.po.TableInfo;
+import com.baomidou.mybatisplus.generator.config.rules.DateType;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+
+import java.util.Arrays;
+import java.util.HashMap;
+
+/**
+ * 后端代码生成工具
+ * <p>
+ * 只为代码生成,不被任何模块关联
+ * <p>
+ * 使用:创建generator同级文件夹modular
+ * 赋值public static字段
+ * 执行execute()方法
+ */
+public class Storage {
+
+    public static void main(String[] args) {
+        execute();
+    }
+
+    // 数据库名
+    public static String DATABASE_NAME = "storage";
+
+    // 模块名称
+    public static String MODULAR_NAME = "storage";
+
+    // 需要生成的表名称,多表用,隔开
+    public static String INCLUDE = "stock_correct";
+
+    // mysql连接
+    public static String MYSQL_URL = "rm-wz9f1jcr5466b42415o.mysql.rds.aliyuncs.com:3306";
+    public static String USER_NAME = "printer";
+    public static String PASSWORD = "RLP@uBr-w4G#AZ5";
+
+    // 业务位置
+    public static String SERVICE_PATH = "hx-service";
+
+    public static String BASE_ENTITY_PATH = "com.fjhx.base.BaseEntity";
+    public static String BASE_SERVICE_PATH = "com.fjhx.base.BaseService";
+
+    // 执行代码生成
+    public static void execute() {
+
+        MODULAR_NAME = ObjectUtil.isEmpty(MODULAR_NAME) ? DATABASE_NAME : MODULAR_NAME;
+
+        // 实体类所在模块
+        String entityChildren = "/hx-service-api/" + MODULAR_NAME.replace("_", "-") + "-api";
+
+        //  业务所在模块
+        String children = "/" + SERVICE_PATH + "/" + MODULAR_NAME.replace("_", "-");
+
+        // 生成的包路径
+        String parent = "com.fjhx";
+
+        // 生成模块的名称
+        String moduleName = INCLUDE.split(",")[0].split("_")[0];
+
+        // 创建代码生成器
+        AutoGenerator mpg = new AutoGenerator();
+
+        // 全局配置
+        GlobalConfig gc = new GlobalConfig();
+        gc.setOutputDir(System.getProperty("user.dir") + children + "/src/main/java");
+        gc.setOpen(false); //生成后是否打开资源管理器
+        gc.setFileOverride(false); //重新生成时文件是否覆盖
+        gc.setServiceName("%sService");    //去掉Service接口的首字母
+        gc.setDateType(DateType.ONLY_DATE);//定义生成的实体类中日期类型
+        gc.setSwagger2(false);//开启Swagger2模式
+        gc.setIdType(IdType.ASSIGN_ID); //主键策略
+        mpg.setGlobalConfig(gc);
+
+        // 数据源配置
+        DataSourceConfig dsc = new DataSourceConfig();
+        dsc.setUrl("jdbc:mysql://" + MYSQL_URL + "/" + DATABASE_NAME + "?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull" +
+                "&useSSL=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true");
+        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
+        dsc.setUsername(USER_NAME);
+        dsc.setPassword(PASSWORD);
+        dsc.setDbType(DbType.MYSQL);
+        mpg.setDataSource(dsc);
+
+        // 包配置
+        PackageConfig pc = new PackageConfig();
+        pc.setParent(parent);// 包路径
+        pc.setModuleName(moduleName); //模块名
+        pc.setXml("mapper");
+        pc.setEntity("entity");
+        mpg.setPackageInfo(pc);
+
+        // 策略配置
+        StrategyConfig strategy = new StrategyConfig();
+        strategy.setInclude(INCLUDE.split(","));
+        // strategy.setTablePrefix(PREFIX); //生成实体时去掉表前缀
+        strategy.setNaming(NamingStrategy.underline_to_camel); //数据库表映射到实体的命名策略(下划线转驼峰命名)
+        strategy.setColumnNaming(NamingStrategy.underline_to_camel); //数据库表字段映射到实体的命名策略(下划线转驼峰命名)
+        strategy.setEntityLombokModel(true); // 开启lombok
+        strategy.setChainModel(false); // lombok实体链式调用
+        strategy.setRestControllerStyle(true); //restful api风格控制器
+        strategy.setVersionFieldName("version"); // 乐观锁字段名
+        strategy.setLogicDeleteFieldName("delFlag"); // 逻辑删除字段名
+        strategy.setSuperEntityColumns("id", "create_user", "create_time", "update_user", "update_time", "tenant_id");
+        strategy.setCapitalMode(false);
+        strategy.setEntitySerialVersionUID(false);
+        // service继承规则
+        strategy.setSuperServiceClass(BASE_SERVICE_PATH);
+        // 实体继承规则
+        strategy.setSuperEntityClass(BASE_ENTITY_PATH);
+        strategy.setTableFillList(Arrays.asList(
+                new TableFill("del_flag", FieldFill.INSERT),
+                new TableFill("version", FieldFill.INSERT)));
+        strategy.setLogicDeleteFieldName("del_flag");
+        mpg.setStrategy(strategy);
+
+        // 自定义模板
+        TemplateConfig templateConfig = new TemplateConfig();
+        templateConfig.setController("codeTemplates\\controller.java");
+        templateConfig.setService("codeTemplates\\service.java");
+        templateConfig.setServiceImpl("codeTemplates\\serviceImpl.java");
+        templateConfig.setMapper("codeTemplates\\mapper.java");
+        templateConfig.setEntity(null);
+
+        mpg.setTemplate(templateConfig);
+
+        InjectionConfig ic = new InjectionConfig() {
+            @Override
+            public void initMap() {
+                HashMap<String, Object> map = new HashMap<>();
+                map.put("entityName", parent + ".entity." + moduleName);
+                map.put("voPath", parent + ".params." + moduleName);
+                setMap(map);
+            }
+        };
+
+        // 实体模板配置
+        FileOutConfig entity = new FileOutConfig("/codeTemplates/entity.java.vm") {
+            @Override
+            public String outputFile(TableInfo tableInfo) {
+                return System.getProperty("user.dir") + entityChildren + "/src/main/java/com/fjhx/entity/"
+                        + moduleName + "/" + tableInfo.getEntityName() + ".java";
+            }
+        };
+
+        // VO模板配置
+        FileOutConfig entityVo = new FileOutConfig("/codeTemplates/vo.java.vm") {
+            @Override
+            public String outputFile(TableInfo tableInfo) {
+                return System.getProperty("user.dir") + entityChildren + "/src/main/java/com/fjhx/params/"
+                        + moduleName + "/" + tableInfo.getEntityName() + "Vo.java";
+            }
+        };
+
+        // Ex模板配置
+        FileOutConfig entityEx = new FileOutConfig("/codeTemplates/ex.java.vm") {
+            @Override
+            public String outputFile(TableInfo tableInfo) {
+                return System.getProperty("user.dir") + entityChildren + "/src/main/java/com/fjhx/params/"
+                        + moduleName + "/" + tableInfo.getEntityName() + "Ex.java";
+            }
+        };
+
+        ic.setFileOutConfigList(Arrays.asList(entity, entityVo, entityEx));
+        mpg.setCfg(ic);
+
+        // 执行
+        mpg.execute();
+    }
+
+}

+ 51 - 0
hx-service-api/storage-api/src/main/java/com/fjhx/entity/stock/StockCorrect.java

@@ -0,0 +1,51 @@
+package com.fjhx.entity.stock;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fjhx.base.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-11-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class StockCorrect extends BaseEntity {
+
+
+    /**
+     * 修正日期
+     */
+    private Date correctDate;
+
+    /**
+     * 修正员工
+     */
+    private String correctUser;
+
+    /**
+     * 面料id
+     */
+    private String materialId;
+
+    /**
+     * 修正面积
+     */
+    private BigDecimal correctArea;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+
+}

+ 17 - 0
hx-service-api/storage-api/src/main/java/com/fjhx/params/stock/StockCorrectEx.java

@@ -0,0 +1,17 @@
+package com.fjhx.params.stock;
+
+import com.fjhx.entity.stock.StockCorrect;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 
+ *
+ * @author ${author}
+ * @since 2022-11-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class StockCorrectEx extends StockCorrect {
+
+}

+ 17 - 0
hx-service-api/storage-api/src/main/java/com/fjhx/params/stock/StockCorrectVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.params.stock;
+
+import com.fjhx.entity.stock.StockCorrect;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 
+ *
+ * @author ${author}
+ * @since 2022-11-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class StockCorrectVo extends StockCorrect {
+
+}

+ 18 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/controller/check/CheckController.java

@@ -151,5 +151,23 @@ public class CheckController {
         return R.success(result);
     }
 
+    /**
+     * 库存管理盘点记录 异常物料类型
+     */
+    @PostMapping("errorMaterialPurpose")
+    public R errorMaterialPurpose(@RequestBody Condition condition) {
+        List<String> result = checkInfoService.errorMaterialPurpose(condition);
+        return R.success(result);
+    }
+
+    /**
+     * 库存管理盘点记录 异常物料分页
+     */
+    @PostMapping("errorMaterialPage")
+    public R errorMaterialPage(@RequestBody Condition condition) {
+        Page<Map<String, Object>> result = checkInfoService.errorMaterialPage(condition);
+        return R.success(result);
+    }
+
 }
 

+ 4 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/mapper/check/CheckInfoMapper.java

@@ -35,4 +35,8 @@ public interface CheckInfoMapper extends BaseMapper<CheckInfo> {
 
     Page<Map<String, Object>> errorTagPage(@Param("page") Page<Object> page, @Param("ew") QueryWrapper<Object> wrapper);
 
+    List<String> errorMaterialPurpose(@Param("ew") QueryWrapper<Object> wrapper);
+
+    Page<Map<String, Object>> errorMaterialPage(@Param("page") Page<Object> page, @Param("ew") QueryWrapper<Object> wrapper);
+
 }

+ 38 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/mapper/check/CheckInfoMapper.xml

@@ -124,4 +124,42 @@
             ${ew.customSqlSegment}
     </select>
 
+    <select id="errorMaterialPurpose" resultType="java.lang.String">
+        select distinct m.purpose
+        from check_info ci
+                 inner join check_detail cd on ci.id = cd.check_id
+                 inner join material m on cd.material_id = m.id
+            ${ew.customSqlSegment}
+    </select>
+
+    <select id="errorMaterialPage" resultType="java.util.LinkedHashMap">
+        select t.id   materialId,
+               t.technology_type,
+               t.purpose,
+               t.code materialCode,
+               t.name materialName,
+               cd2.stock_count,
+               cd2.scan_count,
+               cd2.check_count,
+               cd2.hand_count,
+               ci2.create_time,
+               ci2.oper_user_id,
+               cd2.id
+        from (
+                 select m.id,
+                        m.technology_type,
+                        m.purpose,
+                        m.code,
+                        m.name,
+                        max(cd.id) maxDetailId
+                 from check_info ci
+                          inner join check_detail cd on ci.id = cd.check_id
+                          inner join material m on cd.material_id = m.id
+                     ${ew.customSqlSegment}
+             ) t
+                 left join check_detail cd2 on cd2.id = t.maxDetailId
+                 left join check_info ci2 on ci2.old_id = cd2.check_id
+        where cd2.check_result = 0
+    </select>
+
 </mapper>

+ 1 - 1
hx-service/storage-restructure/src/main/java/com/fjhx/mapper/contract/ContractDetailsMapper.xml

@@ -51,7 +51,7 @@
             ${ew.customSqlSegment}
     </select>
 
-    <select id="warehousingPage" resultType="java.util.Map">
+    <select id="warehousingPage" resultType="java.util.LinkedHashMap">
         select m.code                                                         materialCode,
                m.name                                                         materialName,
                m.spec                                                         materialSpec,

+ 10 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/service/check/CheckInfoService.java

@@ -91,4 +91,14 @@ public interface CheckInfoService extends StorageBaseService<CheckInfo> {
      */
     Page<Map<String, Object>> errorTagPage(Condition condition);
 
+    /**
+     * 异常物料类型
+     */
+    List<String> errorMaterialPurpose(Condition condition);
+
+    /**
+     * 异常物料分页
+     */
+    Page<Map<String, Object>> errorMaterialPage(Condition condition);
+
 }

+ 34 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/service/check/impl/CheckInfoServiceImpl.java

@@ -333,6 +333,40 @@ public class CheckInfoServiceImpl extends ServiceImpl<CheckInfoMapper, CheckInfo
         return page;
     }
 
+    @Override
+    public List<String> errorMaterialPurpose(Condition condition) {
+        Date beginTime = condition.getBeginTime();
+        Date endTime = condition.getEndTime();
+        Integer technologyType = condition.getInt("technologyType");
+        Long checkInfoId = condition.getLong("checkInfoId");
+
+        QueryWrapper<Object> wrapper = Wrappers.query()
+                .between(ObjectUtil.isAllNotEmpty(beginTime, endTime), "ci.create_time", beginTime, endTime)
+                .eq(ObjectUtil.isNotEmpty(technologyType), "m.technology_type", technologyType)
+                .eq(ObjectUtil.isEmpty(technologyType), "cd.check_result", 0)
+                .eq(ObjectUtil.isNotEmpty(checkInfoId), "ci.id", checkInfoId);
+
+        return baseMapper.errorMaterialPurpose(wrapper);
+    }
+
+    @Override
+    public Page<Map<String, Object>> errorMaterialPage(Condition condition) {
+        Date beginTime = condition.getBeginTime();
+        Date endTime = condition.getEndTime();
+        Integer technologyType = condition.getInt("technologyType");
+        String purpose = condition.getStr("purpose");
+
+        QueryWrapper<Object> wrapper = Wrappers.query()
+                .between(ObjectUtil.isAllNotEmpty(beginTime, endTime), "ci.create_time", beginTime, endTime)
+                .eq(ObjectUtil.isNotEmpty(technologyType), "m.technology_type", technologyType)
+                .eq(ObjectUtil.isNotEmpty(purpose), "m.purpose", purpose)
+                .groupBy("cd.id");
+
+        Page<Map<String, Object>> page = baseMapper.errorMaterialPage(condition.getPage(), wrapper);
+        UserClientUtil.setUserName(page.getRecords(), "operUserId", "operUserName");
+        return page;
+    }
+
     /**
      * 获取在库标签
      */

+ 34 - 0
hx-service/storage/src/main/java/com/fjhx/stock/controller/StockCorrectController.java

@@ -0,0 +1,34 @@
+package com.fjhx.stock.controller;
+
+import com.fjhx.params.stock.StockCorrectVo;
+import com.fjhx.stock.service.StockCorrectService;
+import org.springblade.core.tool.api.R;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 前端控制器
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-11-09
+ */
+@RestController
+@RequestMapping("/stockCorrect")
+public class StockCorrectController {
+
+    @Autowired
+    private StockCorrectService stockCorrectService;
+
+    @PostMapping("/add")
+    public R add(@RequestBody StockCorrectVo stockCorrectVo) {
+        stockCorrectService.add(stockCorrectVo);
+        return R.success();
+    }
+
+}
+

+ 16 - 0
hx-service/storage/src/main/java/com/fjhx/stock/mapper/StockCorrectMapper.java

@@ -0,0 +1,16 @@
+package com.fjhx.stock.mapper;
+
+import com.fjhx.entity.stock.StockCorrect;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-11-09
+ */
+public interface StockCorrectMapper extends BaseMapper<StockCorrect> {
+
+}

+ 5 - 0
hx-service/storage/src/main/java/com/fjhx/stock/mapper/StockCorrectMapper.xml

@@ -0,0 +1,5 @@
+<?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.fjhx.stock.mapper.StockCorrectMapper">
+
+</mapper>

+ 28 - 0
hx-service/storage/src/main/java/com/fjhx/stock/service/StockCorrectService.java

@@ -0,0 +1,28 @@
+package com.fjhx.stock.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.entity.stock.StockCorrect;
+import com.fjhx.params.stock.StockCorrectVo;
+import com.fjhx.base.BaseService;
+
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-11-09
+ */
+public interface StockCorrectService extends BaseService<StockCorrect> {
+
+    Page<StockCorrect> getPage(Map<String, String> condition);
+
+    void add(StockCorrectVo stockCorrectVo);
+
+    void edit(StockCorrectVo stockCorrectVo);
+
+    void delete(StockCorrectVo stockCorrectVo);
+
+}

+ 54 - 0
hx-service/storage/src/main/java/com/fjhx/stock/service/impl/StockCorrectServiceImpl.java

@@ -0,0 +1,54 @@
+package com.fjhx.stock.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.utils.WrapperUtil;
+import com.fjhx.entity.stock.StockCorrect;
+import com.fjhx.params.stock.StockCorrectVo;
+import com.fjhx.stock.mapper.StockCorrectMapper;
+import com.fjhx.stock.service.StockCorrectService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-11-09
+ */
+@Service
+public class StockCorrectServiceImpl extends ServiceImpl<StockCorrectMapper, StockCorrect> implements StockCorrectService {
+
+    @Override
+    public Page<StockCorrect> getPage(Map<String, String> condition) {
+
+        QueryWrapper<StockCorrect> wrapper = Wrappers.query();
+
+        WrapperUtil.init(condition, wrapper)
+                .createTimeDesc();
+
+        Page<StockCorrect> page = page(condition, wrapper);
+        return page;
+    }
+
+    @Override
+    public void add(StockCorrectVo stockCorrectVo) {
+        save(stockCorrectVo);
+    }
+
+    @Override
+    public void edit(StockCorrectVo stockCorrectVo) {
+        updateById(stockCorrectVo);
+    }
+
+    @Override
+    public void delete(StockCorrectVo stockCorrectVo) {
+        removeById(stockCorrectVo.getId());
+    }
+
+}