XiaoRuby
2023-08-17 95bd45377f1e04b448d407e3af4ee2707b90a24b
MOM系统-8-17计量管理版本一结束
已添加12个文件
已修改10个文件
776 ■■■■■ 文件已修改
framework/src/main/java/com/yuanchu/mom/utils/MyUtil.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/controller/MeasureLedgerController.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/controller/MeteringPlanController.java 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/mapper/MeasureLedgerMapper.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/mapper/MeteringPlanMapper.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/pojo/MeasureLedger.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/pojo/MeteringPlan.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/MeasureLedgerService.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/MeteringPlanService.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InspectUnacceptedServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/impl/MeasureLedgerServiceImpl.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/impl/MeteringPlanServiceImpl.java 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/MeasureLedgerMapper.xml 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/MeteringPlanMapper.xml 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inventory-server/src/main/java/com/yuanchu/mom/service/impl/ConsignmentServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/mom/service/DeviceService.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
system-run/pom.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
system-run/src/main/java/com/yuanchu/mom/CodeGenerator.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/java/com/yuanchu/mom/service/UserService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/com/yuanchu/mom/utils/MyUtil.java
@@ -63,14 +63,13 @@
        return sb.toString();
    }
    public static String getTimeSixNumberCode(String prefix){
    public static String getTimeSixNumberCode(String prefix, String keyName){
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        String format = simpleDateFormat.format(new Date());
        String timeStr = format.replace("-", "");
        long incrNum = RedisUtil.incr("num", 1);
        System.out.println(incrNum + "==============");
        long incrNum = RedisUtil.incr(keyName, 1);
        if(incrNum == 1){
            RedisUtil.expire("num", 60 * 60 * 24);
            RedisUtil.expire(keyName, 60 * 60 * 24);
        }
        String sixIncr = String.format("%06d", incrNum);
        return prefix + timeStr + sixIncr;
inspect-server/src/main/java/com/yuanchu/mom/controller/MeasureLedgerController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
package com.yuanchu.mom.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.service.MeasureLedgerService;
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
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.stereotype.Controller;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
/**
 * <p>
 *  å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-08-16 11:41:09
 */
@Api(tags = "QMS管理-->计量管理")
@RestController
@RequestMapping("/measureLedger")
public class MeasureLedgerController {
    @Autowired
    private MeasureLedgerService measureLedgerService;
    @ApiOperation(value = "计量预测-->分页表格")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "pageNo", value = "条数/页", dataTypeClass = Integer.class, required = true),
            @ApiImplicitParam(name = "pageSize", value = "页数", dataTypeClass = Integer.class, required = true),
            @ApiImplicitParam(name = "code", value = "计量编号", dataTypeClass = String.class),
            @ApiImplicitParam(name = "deviceName", value = "仪器设备名称", dataTypeClass = String.class),
            @ApiImplicitParam(name = "meteringUnit", value = "计量单位", dataTypeClass = String.class)
    })
    @GetMapping("/metering_table")
    public Result<?> selectMeasureLedger(Integer pageNo, Integer pageSize, String code, String deviceName, String meteringUnit){
        IPage<Map<String, Object>> maps = measureLedgerService.selectMeasureLedger(new Page<Object>(pageNo, pageSize), code, deviceName, meteringUnit);
        Map<String, Object> map = new HashMap<>();
        map.put("row", maps.getRecords());
        map.put("total", maps.getTotal());
        return Result.success(map);
    }
}
inspect-server/src/main/java/com/yuanchu/mom/controller/MeteringPlanController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,108 @@
package com.yuanchu.mom.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.pojo.MeteringPlan;
import com.yuanchu.mom.service.DeviceService;
import com.yuanchu.mom.service.MeteringPlanService;
import com.yuanchu.mom.service.UserService;
import com.yuanchu.mom.utils.JackSonUtil;
import com.yuanchu.mom.utils.Jwt;
import com.yuanchu.mom.utils.MyUtil;
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.stereotype.Controller;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * <p>
 *  å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-08-16 11:42:31
 */
@Api(tags = "QMS管理-->计量管理")
@RestController
@RequestMapping("/meteringPlan")
public class MeteringPlanController {
    @Autowired
    private MeteringPlanService meteringPlanService;
    @Autowired
    private UserService userService;
    @Autowired
    private DeviceService deviceService;
    @Autowired
    private Jwt jwt;
    @ApiOperation(value = "计量计划-->新增按钮")
    @PostMapping("/add_plan")
    public Result<?> addMeteringPlan(@RequestHeader("token") String token,@Validated @RequestBody MeteringPlan meteringPlan) throws Exception {
        Map<String, String> data = JackSonUtil.unmarshal(jwt.readJWT(token).get("data"), Map.class);
        String id = data.get("id").replaceAll("\"", "");
        meteringPlan.setFounder(Integer.valueOf(id));
        Integer isInsertSuccess = meteringPlanService.addMeteringPlan(meteringPlan);
        if (isInsertSuccess == 1){
            return Result.success("新增成功!");
        }
        return Result.fail("新增失败!");
    }
    @ApiOperation(value = "计量计划-->负责人下拉框")
    @GetMapping("/list_user")
    public Result<?> selectUserIdAndName(){
        List<Map<String, Object>> maps = userService.listUserIdAndName();
        return Result.success(maps);
    }
    @ApiOperation(value = "计量计划-->计量单位下拉框")
    @GetMapping("/list_unit")
    public Result<?> selectUnit(){
        List<Map<String, Object>> maps = meteringPlanService.selectUnit();
        return Result.success(maps);
    }
    @ApiOperation(value = "计量计划-->分页表格")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "pageNo", value = "条数/页", dataTypeClass = Integer.class, required = true),
            @ApiImplicitParam(name = "pageSize", value = "页数", dataTypeClass = Integer.class, required = true),
            @ApiImplicitParam(name = "code", value = "计量编号", dataTypeClass = String.class),
            @ApiImplicitParam(name = "meteringUnit", value = "计量单位", dataTypeClass = String.class)
    })
    @GetMapping("/metering_table")
    public Result<?> selectMeteringTable(Integer pageNo, Integer pageSize, String code, String meteringUnit){
        Map<String, Object> maps = meteringPlanService.selectMeteringTable(pageNo, pageSize, code, meteringUnit);
        return Result.success(maps);
    }
    @ApiOperation(value = "计量计划<-->计量台账:查看计量履历")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "measureId", value = "计量Id", dataTypeClass = Integer.class, required = true),
            @ApiImplicitParam(name = "accountOrPlan", value = "true为台账|false为计划", dataTypeClass = Boolean.class, required = true),
    })
    @GetMapping("/list_record")
    public Result<?> standingBook(Integer measureId, Boolean accountOrPlan){
        Object maps = meteringPlanService.standingBook(measureId, accountOrPlan);
        return Result.success(maps);
    }
    @ApiOperation(value = "计量计划:新增按钮:点击新增行后提交设备名称")
    @GetMapping("/list_device")
    public Result<?> selectOneDeviceId(){
        List<Map<String, Object>> mapList = deviceService.selectDeviceIdAndName();
        return Result.success(mapList);
    }
}
inspect-server/src/main/java/com/yuanchu/mom/mapper/MeasureLedgerMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.mybatis_config.MyBaseMapper;
import com.yuanchu.mom.pojo.MeasureLedger;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
import java.util.Map;
/**
 * <p>
 *  Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-08-16 11:41:09
 */
public interface MeasureLedgerMapper extends MyBaseMapper<MeasureLedger> {
    IPage<Map<String, Object>> selectMeasureLedger(Page<Object> page, String code, String deviceName, String meteringUnit);
    List<Map<String, Object>> standingBook(Integer measureId);
}
inspect-server/src/main/java/com/yuanchu/mom/mapper/MeteringPlanMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.pojo.MeteringPlan;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
import java.util.Map;
/**
 * <p>
 *  Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-08-16 02:01:38
 */
public interface MeteringPlanMapper extends BaseMapper<MeteringPlan> {
    List<Map<String, Object>> selectMeteringTable(Integer pageNo, Integer pageSize, String code, String meteringUnit);
    List<Map<String, Object>> selectIdPlan(Integer measureId);
    Map<String, Object> selectIdPlanIdMessage(Integer measureId);
}
inspect-server/src/main/java/com/yuanchu/mom/pojo/MeasureLedger.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,89 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
/**
 * <p>
 *
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-08-16 11:41:09
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "MeasureLedger对象", description = "")
public class MeasureLedger implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "主键Id", hidden = true)
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    @NotNull(message = "设备Id不能为空!")
    @ApiModelProperty(value = "设备Id", example = "1", required = true)
    private Integer deviceId;
    @ApiModelProperty(value = "计量计划Id", hidden = true)
    private Integer measurePlanId;
    @ApiModelProperty(value = "测量范围", example = "0.2302")
    private String measuringRange;
    @NotNull(message = "计量周期不能为空!")
    @ApiModelProperty(value = "计量周期", example = "12", required = true)
    private Integer measurePeriod;
    @ApiModelProperty(value = "计量结果 1:正常;2:失准")
    private Integer measureResult;
    @ApiModelProperty(value = "计量日期", example = "2023-08-16", dataType = "date", required = true)
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDate measureDate;
    @ApiModelProperty(value = "计量有效期-开始", example = "2023-08-16", dataType = "date", required = true)
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDate validityBegin;
    @ApiModelProperty(value = "计量有效期-结束", example = "2023-08-16", dataType = "date", required = true)
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDate validityEnd;
    @ApiModelProperty(value = "计量编号", hidden = true)
    private String measureNumber;
    @ApiModelProperty(value = "附件", hidden = true)
    private String attachment;
    @ApiModelProperty(value = "创建时间", hidden = true)
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
    @ApiModelProperty(value = "更新时间", hidden = true)
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;
    @ApiModelProperty(value = "逻辑删除", hidden = true)
    @TableLogic(value = "1", delval = "0")
    private Integer state;
}
inspect-server/src/main/java/com/yuanchu/mom/pojo/MeteringPlan.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,81 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
 * <p>
 *
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-08-16 02:01:38
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "MeteringPlan对象", description = "")
public class MeteringPlan implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "主键Id", hidden = true)
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty(value = "计划编号", hidden = true)
    private String planNumber;
    @NotNull(message = "请选择创建人!")
    @ApiModelProperty(value = "创建人", hidden = true)
    private Integer founder;
    @ApiModelProperty(value = "计划日期开始", example = "2023-07-02", dataType = "date", required = true)
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDate planDateBegin;
    @ApiModelProperty(value = "计划日期结束", example = "2023-07-02", dataType = "date", required = true)
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDate planDateEnd;
    @NotBlank(message = "请选择或请输入计量单位!")
    @ApiModelProperty(value = "计量单位", example = "上海质检所", required = true)
    private String planUnit;
    @NotNull(message = "请选择负责人!")
    @ApiModelProperty(value = "负责人", example = "1", required = true)
    private Integer personCharge;
    @ApiModelProperty(value = "创建日期", hidden = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;
    @ApiModelProperty(value = "更新日期", hidden = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;
    @ApiModelProperty(value = "逻辑删除", hidden = true)
    @TableLogic(value = "1", delval = "0")
    private Integer state;
    @TableField(exist = false)
    private List<MeasureLedger> measureLedgerList;
}
inspect-server/src/main/java/com/yuanchu/mom/service/MeasureLedgerService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.pojo.MeasureLedger;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
import java.util.Map;
/**
 * <p>
 *  æœåŠ¡ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-08-16 11:41:09
 */
public interface MeasureLedgerService extends IService<MeasureLedger> {
    Boolean addMeasureLedger(Integer id, List<MeasureLedger> measureLedgerList);
    IPage<Map<String, Object>> selectMeasureLedger(Page<Object> page, String code, String deviceName, String meteringUnit);
    List<Map<String, Object>> standingBook(Integer measureId);
}
inspect-server/src/main/java/com/yuanchu/mom/service/MeteringPlanService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.pojo.MeteringPlan;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
/**
 * <p>
 *  æœåŠ¡ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-08-16 11:42:31
 */
public interface MeteringPlanService extends IService<MeteringPlan> {
    @Transactional(rollbackFor = Exception.class)
    Integer addMeteringPlan(MeteringPlan meteringPlan);
    List<Map<String, Object>> selectUnit();
    Map<String, Object> selectMeteringTable(Integer pageNo, Integer pageSize, String code, String meteringUnit);
    Object standingBook(Integer measureId, Boolean accountOrPlan);
}
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InspectUnacceptedServiceImpl.java
@@ -1,12 +1,12 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.mapper.InspectUnacceptedMapper;
import com.yuanchu.mom.pojo.InspectUnaccepted;
import com.yuanchu.mom.service.InspectUnacceptedService;
import com.yuanchu.mom.vo.Result;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
inspect-server/src/main/java/com/yuanchu/mom/service/impl/MeasureLedgerServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.pojo.MeasureLedger;
import com.yuanchu.mom.mapper.MeasureLedgerMapper;
import com.yuanchu.mom.service.MeasureLedgerService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.utils.MyUtil;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
 * <p>
 *  æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-08-16 11:41:09
 */
@Service
public class MeasureLedgerServiceImpl extends ServiceImpl<MeasureLedgerMapper, MeasureLedger> implements MeasureLedgerService {
    @Resource
    private MeasureLedgerMapper measureLedgerMapper;
    @Override
    public Boolean addMeasureLedger(Integer id, List<MeasureLedger> measureLedgerList) {
        for (MeasureLedger measureLedger : measureLedgerList){
            String timeSixNumberCode = MyUtil.getTimeSixNumberCode("QCX", "QCX");
            measureLedger.setMeasurePlanId(id);
            measureLedger.setMeasureNumber(timeSixNumberCode);
        }
        int insertSuccess = measureLedgerMapper.insertBatchSomeColumn(measureLedgerList);
        return insertSuccess >= 1;
    }
    @Override
    public IPage<Map<String, Object>> selectMeasureLedger(Page<Object> page, String code, String deviceName, String meteringUnit) {
        return measureLedgerMapper.selectMeasureLedger(page, code, deviceName, meteringUnit);
    }
    @Override
    public List<Map<String, Object>> standingBook(Integer measureId) {
        return measureLedgerMapper.standingBook(measureId);
    }
}
inspect-server/src/main/java/com/yuanchu/mom/service/impl/MeteringPlanServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,111 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.pojo.MeasureLedger;
import com.yuanchu.mom.pojo.MeteringPlan;
import com.yuanchu.mom.mapper.MeteringPlanMapper;
import com.yuanchu.mom.service.MeasureLedgerService;
import com.yuanchu.mom.service.MeteringPlanService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.utils.JackSonUtil;
import com.yuanchu.mom.utils.MyUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * <p>
 *  æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-08-16 11:42:31
 */
@Service
public class MeteringPlanServiceImpl extends ServiceImpl<MeteringPlanMapper, MeteringPlan> implements MeteringPlanService {
    @Resource
    private MeteringPlanMapper meteringPlanMapper;
    @Autowired
    private MeasureLedgerService measureLedgerService;
    @Override
    public Integer addMeteringPlan(MeteringPlan meteringPlan) {
        String timeSixNumberCode = MyUtil.getTimeSixNumberCode("P", "P");
        meteringPlan.setPlanNumber(timeSixNumberCode);
        int insertSuccess = meteringPlanMapper.insert(meteringPlan);
        if (insertSuccess >= 1){
            Boolean aBoolean = measureLedgerService.addMeasureLedger(meteringPlan.getId(), meteringPlan.getMeasureLedgerList());
            if (aBoolean) {
                return 1;
            }
        }
        return 0;
    }
    @Override
    public List<Map<String, Object>> selectUnit() {
        LambdaQueryWrapper<MeteringPlan> wrapper = new LambdaQueryWrapper<>();
        wrapper.groupBy(MeteringPlan::getPlanUnit);
        wrapper.select(MeteringPlan::getPlanUnit);
        return meteringPlanMapper.selectMaps(wrapper);
    }
    @Override
    public Map<String, Object> selectMeteringTable(Integer pageNo, Integer pageSize, String code, String meteringUnit) {
        List<Map<String, Object>> mapList = meteringPlanMapper.selectMeteringTable(pageNo, pageSize, code, meteringUnit);
        if (!ObjectUtils.isEmpty(mapList)){
            for (Map<String, Object> map : mapList){
                int statue = 1;
                try {
                    List<Map<String, Object>> result = JackSonUtil.unmarshal(JackSonUtil.marshal(map.get("result")), List.class);
                        for (Map<String, Object> mapResult : result){
                            String result1 = mapResult.get("result").toString();
                        if (result1.equals("n")){
                            statue = 0;
                            break;
                        }
                    }
                    map.put("planStatue", statue);
                    map.remove("result");
                } catch (Exception e) {
                    throw new RuntimeException(e);
                }
            }
        }
        LambdaQueryWrapper<MeteringPlan> wrapper = new LambdaQueryWrapper<>();
        if (!ObjectUtils.isEmpty(code)){
            wrapper.eq(MeteringPlan::getPlanNumber, code);
        }
        if (!ObjectUtils.isEmpty(meteringUnit)){
            wrapper.eq(MeteringPlan::getPlanUnit, meteringUnit);
        }
        Long aLong = meteringPlanMapper.selectCount(wrapper);
        Map<String, Object> map = new HashMap<>();
        map.put("row", mapList);
        map.put("total", aLong);
        return map;
    }
    @Override
    public Object standingBook(Integer measureId, Boolean accountOrPlan) {
        if (accountOrPlan){
            return measureLedgerService.standingBook(measureId);
        } else {
            Map<String, Object> meteringPlan = meteringPlanMapper.selectIdPlanIdMessage(measureId);
            List<Map<String, Object>> mapList = meteringPlanMapper.selectIdPlan(measureId);
            Map<String, Object> map = new HashMap<>();
            map.put("top", meteringPlan);
            map.put("table", mapList);
            return map;
        }
    }
}
inspect-server/src/main/resources/mapper/MeasureLedgerMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
<?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.yuanchu.mom.mapper.MeasureLedgerMapper">
    <select id="selectMeasureLedger" resultType="map">
        SELECT l.`id`, d.`code`, d.`name`,l.`measuring_range`, l.`measure_period`, l.`measure_result`, DATE_FORMAT(l.`measure_date`, '%Y-%m-%d') measureDate,
            DATE_FORMAT(l.`validity_end`, '%Y-%m-%d') validityEnd, u.`name` founder, DATE_FORMAT(p.`create_time`, '%Y-%m-%d') createTime,
            r.`name` person_charge, p.`plan_unit`, l.`measure_number`
        FROM measure_ledger l, device d, metering_plan p, `user` u, `user` r
        WHERE l.`device_id` = d.`id`
          AND l.`state` = 1
          AND l.`measure_plan_id` = p.`id`
          AND u.`id` = p.`founder`
          AND r.`id` = p.`person_charge`
        <if test="code != null and code != ''">
            AND d.`code` LIKE CONCAT('%', #{code}, '%')
        </if>
        <if test="deviceName != null and deviceName != ''">
            AND d.`name` LIKE CONCAT('%', #{deviceName}, '%')
        </if>
        <if test="meteringUnit != null and meteringUnit != ''">
            AND p.`plan_unit` LIKE CONCAT('%', #{meteringUnit}, '%')
        </if>
        ORDER BY l.`create_time` DESC
    </select>
    <select id="standingBook" resultType="map">
        SELECT m.`id`, d.`code`, d.`name`, m.`measuring_range`, m.`measure_period`, m.`measure_result`, DATE_FORMAT(m.`measure_date`, '%Y-%m-%d') measureDate,
               DATE_FORMAT(m.`validity_end`, '%Y-%m-%d') validityEnd, u.`name` founder, DATE_FORMAT(m.`create_time`, '%Y-%m-%d') createTime, p.`plan_unit`,
               r.`name` personCharge, p.`plan_number`, DATE_FORMAT(p.`create_time`, '%Y-%m-%d') createTime,
               CONCAT(p.`plan_date_begin`, ' ~ ', p.`plan_date_end`) planTime
        FROM measure_ledger m, device d, metering_plan p, `user` u, `user` r
        WHERE m.`state` = 1
          AND m.`id` = #{measureId}
          AND u.`id` = p.`founder`
          AND r.`id` = p.`person_charge`
          AND m.`measure_plan_id` = p.`id`
          AND m.`device_id` = d.`id`
    </select>
</mapper>
inspect-server/src/main/resources/mapper/MeteringPlanMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
<?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.yuanchu.mom.mapper.MeteringPlanMapper">
    <resultMap id="selectMeteringTableMap" type="map">
        <id property="id" column="id"/>
        <result property="planNumber" column="plan_number"/>
        <result property="planDate" column="planDate"/>
        <result property="founder" column="founder"/>
        <result property="personCharge" column="personCharge"/>
        <result property="createTime" column="createTime"/>
        <collection property="result" resultMap="selectMeteringTableTwoMap" javaType="List"/>
    </resultMap>
    <resultMap id="selectMeteringTableTwoMap" type="map">
        <result property="result" column="result"/>
    </resultMap>
    <select id="selectMeteringTable" resultMap="selectMeteringTableMap">
        SELECT s.*, IFNULL(l.`measure_result`, 'n') result
        FROM (SELECT m.`id`, m.`plan_number`, CONCAT(m.`plan_date_begin`, ' ~ ', m.`plan_date_end`) planDate,
                     s.`name` founder, u.`name` personCharge, DATE_FORMAT(m.`create_time`, '%Y-%m-%d') createTime
              FROM metering_plan m, `user` u, `user` s
              WHERE u.`id` = m.`founder`
                AND s.`id` = m.`person_charge`
                  LIMIT #{pageNo}, #{pageSize}) s
                 LEFT JOIN measure_ledger l
                           ON l.`measure_plan_id` = s.`id`
        WHERE l.`state` = 1
    </select>
    <select id="selectIdPlan" resultType="map">
        SELECT m.`id`, d.`code`, d.`name`, m.`measuring_range`, m.`measure_period`, m.`measure_result`, DATE_FORMAT(m.`measure_date`, '%Y-%m-%d') measureDate,
               DATE_FORMAT(m.`validity_end`, '%Y-%m-%d') validityEnd, u.`name` founder, DATE_FORMAT(m.`create_time`, '%Y-%m-%d') createTime, p.`plan_unit`, r.`name` personCharge, m.`measure_number`
        FROM measure_ledger m, device d, metering_plan p, `user` u, `user` r
        WHERE p.`state` = 1
          AND p.`id` = #{measureId}
          AND u.`id` = p.`founder`
          AND r.`id` = p.`person_charge`
          AND m.`measure_plan_id` = p.`id`
          AND m.`device_id` = d.`id`
    </select>
    <select id="selectIdPlanIdMessage" resultType="map">
        SELECT p.`plan_number`, u.`name` founder, r.`name` person_charge, CONCAT(p.`plan_date_begin`, ' ~ ', p.`plan_date_end`) planTime,
               DATE_FORMAT(p.`create_time`, '%Y-%m-%d') createTime, p.`plan_unit`
        FROM metering_plan p, `user` u, `user` r
        WHERE r.`id` = p.`person_charge`
          AND u.`id` = p.`founder`
          AND p.`state` = 1
          AND p.`id` = #{measureId}
    </select>
</mapper>
inventory-server/src/main/java/com/yuanchu/mom/service/impl/ConsignmentServiceImpl.java
@@ -45,7 +45,7 @@
    @Override
    public String addCon(String name, ConsignmentDto consignmentDto) {
        //生成一个押运单编号
        String escortCode = MyUtil.getTimeSixNumberCode("YY");
        String escortCode = MyUtil.getTimeSixNumberCode("YY", "num");
        List<Consignment> consignments = consignmentMapper.selectAll();
        //如果发货表中没有数据也可以发货
        if (consignments.size() == 0) {
pom.xml
@@ -36,7 +36,7 @@
        <openfeign.version>3.1.3</openfeign.version>
        <feign-okhttp.version>11.0</feign-okhttp.version>
        <shiro.version>1.5.3</shiro.version>
        <velocity-engine.version>2.3</velocity-engine.version>
        <freemwork.version>2.3.32</freemwork.version>
        <!--提交前-->
        <!-- æ‰“包后导出的路径 -->
        <package.path>${project.build.directory}/BLOG</package.path>
@@ -125,6 +125,13 @@
                <version>${mybatis-plus.version}</version>
            </dependency>
            <!--代码生成器模板-->
            <dependency>
                <groupId>org.freemarker</groupId>
                <artifactId>freemarker</artifactId>
                <version>${freemarker.version}</version>
            </dependency>
            <!--feign-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
@@ -144,13 +151,6 @@
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-spring-boot-starter</artifactId>
                <version>${shiro.version}</version>
            </dependency>
            <!-- ä»£ç ç”Ÿæˆå™¨æ¨¡æ¿ï¼Œç”¨äºŽç”Ÿæˆä»£ç  -->
            <dependency>
                <groupId>org.apache.velocity</groupId>
                <artifactId>velocity-engine-core</artifactId>
                <version>${velocity-engine.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
standard-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java
@@ -143,12 +143,13 @@
    @ApiOperation(value = "删除树模块数据", tags = "QMS管理-->实验室管理")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "id", value = "根据设备Id删除", dataTypeClass = Integer.class),
            @ApiImplicitParam(name = "type", value = "设备类型", dataTypeClass = Integer.class),
            @ApiImplicitParam(name = "deviceFather", value = "根据设备分类删除", dataTypeClass = String.class)
    })
    @DeleteMapping("/deleteIdorFather")
    public Result<?> deviceDeleteIdOrFather(Integer id, String deviceFather){
        Integer map = deviceService.deviceDeleteIdOrFather(id, deviceFather);
        if (map == 1){
    public Result<?> deviceDeleteIdOrFather(Integer id, Integer type, String deviceFather){
        Integer map = deviceService.deviceDeleteIdOrFather(id, type, deviceFather);
        if (map >= 1){
            return Result.success("删除成功!");
        }
        return Result.fail("删除失败!");
standard-server/src/main/java/com/yuanchu/mom/service/DeviceService.java
@@ -36,5 +36,7 @@
    Integer deviceDelete(Integer deviceId);
    Integer deviceDeleteIdOrFather(Integer id, String deviceFather);
    Integer deviceDeleteIdOrFather(Integer id, Integer type, String deviceFather);
    List<Map<String, Object>> selectDeviceIdAndName();
}
standard-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java
@@ -95,14 +95,24 @@
    }
    @Override
    public Integer deviceDeleteIdOrFather(Integer id, String deviceFather) {
    public Integer deviceDeleteIdOrFather(Integer id, Integer type, String deviceFather) {
        LambdaUpdateWrapper<Device> updateWrapper = new LambdaUpdateWrapper<>();
        updateWrapper.set(Device::getState, 0);
        if (id != null) {
        if (id == null && deviceFather == null) {
            return 0;
        } else if (id != null) {
            updateWrapper.eq(Device::getId, id);
        } else if (deviceFather != null) {
            updateWrapper.eq(Device::getType, type);
            updateWrapper.eq(Device::getFather, deviceFather);
        }
        return deviceMapper.update(new Device(), updateWrapper);
    }
    @Override
    public List<Map<String, Object>> selectDeviceIdAndName() {
        LambdaQueryWrapper<Device> wrapper = new LambdaQueryWrapper<>();
        wrapper.select(Device::getId, Device::getName);
        return deviceMapper.selectMaps(wrapper);
    }
}
system-run/pom.xml
@@ -58,10 +58,10 @@
            <artifactId>mybatis-plus-generator</artifactId>
        </dependency>
        <!-- ä»£ç ç”Ÿæˆå™¨æ¨¡æ¿ï¼Œç”¨äºŽç”Ÿæˆä»£ç  -->
        <!--代码生成器模板-->
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
        </dependency>
        <!--mysql-->
system-run/src/main/java/com/yuanchu/mom/CodeGenerator.java
@@ -1,10 +1,13 @@
package com.yuanchu.mom;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import com.baomidou.mybatisplus.generator.fill.Column;
import java.util.Collections;
import java.util.Scanner;
@@ -12,11 +15,11 @@
// æ¼”示例子,执行 main æ–¹æ³•控制台输入模块表名回车自动生成对应项目目录中
public class CodeGenerator {
    public static String database_url = "jdbc:mysql://localhost:3306/mom_ocean?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai";
    public static String database_username = "root";
    public static String database_url = "jdbc:mysql://192.168.110.209:3306/mom_ocean?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai";
    public static String database_username = "user";
    public static String database_password= "123456";
    public static String author = "江苏鵷雏网络科技有限公司";
    public static String model_name = "/sale-server"; // å¦‚果为分布式填子模块名称,如果不是分布式为空即可
    public static String model_name = "/inspect-server"; // å¦‚果为分布式填子模块名称,如果不是分布式为空即可
    public static String setParent = "com.yuanchu.mom"; // åŒ…路径
    public static void main(String[] args) {
        String projectPath = System.getProperty("user.dir");
@@ -28,6 +31,7 @@
                            .commentDate("yyyy-MM-dd hh:mm:ss")   //注释日期
                            .outputDir(projectPath + model_name + "/src/main/java") // æŒ‡å®šè¾“出目录
                            .disableOpenDir() //禁止打开输出目录,默认打开
                            .enableSwagger() // å¼€å¯swagger
                    ;
                })
                // åŒ…配置
@@ -45,19 +49,30 @@
                            .enableLombok() //开启 Lombok
                            .naming(NamingStrategy.underline_to_camel)  //数据库表映射到实体的命名策略:下划线转驼峰命
                            .columnNaming(NamingStrategy.underline_to_camel)    //数据库表字段映射到实体的命名策略:下划线转驼峰命
                            .enableFileOverride() // è¦†ç›–已经生成的Entity文件
                            .logicDeleteColumnName("state")
                            .addTableFills(
                                    new Column("create_time", FieldFill.INSERT),
                                    new Column("update_time", FieldFill.INSERT_UPDATE)
                            )
                            // Mapper ç­–略配置
                            .mapperBuilder()
                            .enableFileOverride() // è¦†ç›–已生成文件
                            .enableFileOverride() // è¦†ç›–已生成Mapper文件
                            // Service ç­–略配置
                            .serviceBuilder()
                            .enableFileOverride() // è¦†ç›–已生成文件
                            .formatServiceFileName("%sService") //格式化 service æŽ¥å£æ–‡ä»¶åç§°ï¼Œ%s进行匹配表名,如 UserService
                            .formatServiceImplFileName("%sServiceImpl") //格式化 service å®žçŽ°ç±»æ–‡ä»¶åç§°ï¼Œ%s进行匹配表名,如 UserServiceImpl
                            .enableFileOverride() // è¦†ç›–已生成文件
                            // Controller ç­–略配置
                            .controllerBuilder()
                            .enableFileOverride() // è¦†ç›–已生成文件
                    ;
                })
                //5、模板引擎
                .templateEngine(new FreemarkerTemplateEngine())    //默认
                .execute();
    }
user-server/src/main/java/com/yuanchu/mom/service/UserService.java
@@ -17,4 +17,5 @@
     * æ£€éªŒæ¨¡å—-->OMS管理-->成品检验-->新增(需要用户Id与名称)
     */
    List<Map<String, Object>> listUserIdAndName();
}