Commit f76ecef2 authored by wanglong's avatar wanglong

调试并修改焊口编码接口

parent 79f85504
package com.yeejoin.amos.boot.module.ugp.api.Enum;
import java.security.PublicKey;
import java.util.HashMap;
import java.util.Map;
/**
* 焊口编码赋码状态
*/
public enum WeldCodeEnum {
赋值状态1("未赋值","0","codingStatus"),
赋值状态2("已赋值","1","codingStatus");
private String status;
private String state;
private String IState;
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getIState() {
return IState;
}
public void setIState(String IState) {
this.IState = IState;
}
WeldCodeEnum(String status, String state, String IState) {
this.status = status;
this.state = state;
this.IState = IState;
}
public static final Map<String,String> map=new HashMap<>();
static{
for (WeldCodeEnum weldCodeEnum:WeldCodeEnum.values()){
map.put(weldCodeEnum.getState(),weldCodeEnum.getStatus());
}
}
}
package com.yeejoin.amos.boot.module.ugp.api.Enum;
import java.util.HashMap;
import java.util.Map;
/**
* 焊口编码赋码方式
*/
public enum WeldMethodEnum {
赋码方式1("自动赋码", "0", "codingMethod"),
赋码方式2("手动赋码", "1", "codingMethod");
private String status;
private String state;
private String IState;
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getIState() {
return IState;
}
public void setIState(String IState) {
this.IState = IState;
}
WeldMethodEnum(String status, String state, String IState) {
this.status = status;
this.state = state;
this.IState = IState;
}
public static final Map<String, String> map = new HashMap<>();
static {
for (WeldMethodEnum weldMethodEnum : WeldMethodEnum.values()) {
map.put(weldMethodEnum.getState(), weldMethodEnum.getStatus());
}
}
}
...@@ -27,9 +27,13 @@ public class WeldDto extends BaseDto { ...@@ -27,9 +27,13 @@ public class WeldDto extends BaseDto {
@ApiModelProperty(value = "项目id") @ApiModelProperty(value = "项目id")
private Long projectId; private Long projectId;
private String name;
@ApiModelProperty(value = "安装单位id") @ApiModelProperty(value = "安装单位id")
private Long installCompany; private Long installCompany;
private String installationUnit;
@ApiModelProperty(value = "所在地") @ApiModelProperty(value = "所在地")
private String region; private String region;
...@@ -45,4 +49,8 @@ public class WeldDto extends BaseDto { ...@@ -45,4 +49,8 @@ public class WeldDto extends BaseDto {
@ApiModelProperty(value = "赋码日期") @ApiModelProperty(value = "赋码日期")
private Date codingDate; private Date codingDate;
} }
...@@ -96,15 +96,12 @@ public class WeldController extends BaseController { ...@@ -96,15 +96,12 @@ public class WeldController extends BaseController {
* @param current 每页大小 * @param current 每页大小
* @return * @return
*/ */
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@GetMapping(value = "/page") @GetMapping(value = "/page")
@ApiOperation(httpMethod = "GET", value = "焊口信息表分页查询", notes = "焊口信息表分页查询") @ApiOperation(httpMethod = "GET", value = "焊口信息表分页查询", notes = "焊口信息表分页查询")
public ResponseModel<Page<WeldDto>> queryForPage(@RequestParam(value = "current") int current, @RequestParam public ResponseModel<Page<WeldDto>> queryForPage(@RequestParam(value = "current") int current, @RequestParam
(value = "size") int size) { (value = "size") int size) {
Page<WeldDto> page = new Page<WeldDto>(); return ResponseHelper.buildResponse(weldServiceImpl.queryForWeldPage(current,size));
page.setCurrent(current);
page.setSize(size);
return ResponseHelper.buildResponse(weldServiceImpl.queryForWeldPage(page));
} }
/** /**
...@@ -127,20 +124,9 @@ public class WeldController extends BaseController { ...@@ -127,20 +124,9 @@ public class WeldController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false) @TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@ApiOperation(httpMethod = "POST", value = "生成焊口编码", notes = "生成焊口编码") @ApiOperation(httpMethod = "POST", value = "生成焊口编码", notes = "生成焊口编码")
@PostMapping(value = "/getCode") @PostMapping(value = "/getCode")
public ResponseModel<JSONObject> getCode(Long projectCode, int number) throws Exception { public synchronized ResponseModel<String> getCode(Long sequenceNbr, int number) throws Exception {
//预返回数据 weldServiceImpl.getCode(sequenceNbr, number);
JSONObject message = new JSONObject(); return ResponseHelper.buildResponse("ok");
try {
weldServiceImpl.getCode(projectCode, number);
message.put("res", true);
} catch (Exception e) {
message.put("res", false);
message.put("Exception", e.getMessage());
}
return ResponseHelper.buildResponse(message);
// return ResponseHelper.buildResponse(weldServiceImpl.getCode(projectCode));
} }
} }
package com.yeejoin.amos.boot.module.ugp.biz.service.impl; package com.yeejoin.amos.boot.module.ugp.biz.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yeejoin.amos.boot.module.ugp.api.dto.ProjectDto; import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.module.ugp.api.Enum.WeldCodeEnum;
import com.yeejoin.amos.boot.module.ugp.api.Enum.WeldMethodEnum;
import com.yeejoin.amos.boot.module.ugp.api.entity.Project;
import com.yeejoin.amos.boot.module.ugp.api.entity.Weld; import com.yeejoin.amos.boot.module.ugp.api.entity.Weld;
import com.yeejoin.amos.boot.module.ugp.api.mapper.ProjectMapper;
import com.yeejoin.amos.boot.module.ugp.api.mapper.WeldMapper; import com.yeejoin.amos.boot.module.ugp.api.mapper.WeldMapper;
import com.yeejoin.amos.boot.module.ugp.api.service.IWeldService; import com.yeejoin.amos.boot.module.ugp.api.service.IWeldService;
import com.yeejoin.amos.boot.module.ugp.api.dto.WeldDto; import com.yeejoin.amos.boot.module.ugp.api.dto.WeldDto;
import org.apache.poi.hpsf.Array; import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestParam;
import org.typroject.tyboot.core.foundation.utils.DateUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService; import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
/** /**
* 焊口信息表服务实现类 * 焊口信息表服务实现类
...@@ -29,12 +38,40 @@ class WeldServiceImpl extends BaseService<WeldDto, Weld, WeldMapper> implements ...@@ -29,12 +38,40 @@ class WeldServiceImpl extends BaseService<WeldDto, Weld, WeldMapper> implements
@Autowired @Autowired
WeldMapper weldMapper; WeldMapper weldMapper;
@Autowired
ProjectMapper projectMapper;
Logger logger = LoggerFactory.getLogger(WeldServiceImpl.class);
/** /**
* 分页查询 * 分页查询
*/ */
public Page<WeldDto> queryForWeldPage(Page<WeldDto> page) { public Page<WeldDto> queryForWeldPage(int current, int size) {
return this.queryForPage(page, null, false);
Page<WeldDto> page = new Page<>();
page.setCurrent(current);
page.setSize(size);
Page<WeldDto> weldDtoPage = this.queryForPage(page, null, false);
for (WeldDto weldDto : weldDtoPage.getRecords()) {
QueryWrapper<Project> wrapper = new QueryWrapper<>();
wrapper.eq("code", weldDto.getProjectId());
Project project = projectMapper.selectOne(wrapper);
weldDto.setName(project.getName());
QueryWrapper<Project> wrapperUnit = new QueryWrapper<>();
wrapperUnit.eq("installation_unit_id", weldDto.getInstallCompany());
Project project1 = projectMapper.selectOne(wrapperUnit);
weldDto.setInstallationUnit(project1.getInstallationUnit());
weldDto.setCodingStatus(WeldCodeEnum.map.get(weldDto.getCodingStatus()));
weldDto.setCodingMethod(WeldMethodEnum.map.get(weldDto.getCodingMethod()));
}
return weldDtoPage;
} }
/** /**
...@@ -47,18 +84,57 @@ class WeldServiceImpl extends BaseService<WeldDto, Weld, WeldMapper> implements ...@@ -47,18 +84,57 @@ class WeldServiceImpl extends BaseService<WeldDto, Weld, WeldMapper> implements
/** /**
* 生成焊口编号保存并查询 * 生成焊口编号保存并查询
*/ */
public void getCode(Long projectCode, int number) throws Exception { // 静态变量存储最大值
/** private static final AtomicInteger atomicNum = new AtomicInteger();
* 获取前端传递的数据 // 初始化编号
*/ private final int INIT_CODE_NUM = 0;
for (int i = 0; i <= number - 1; i++) {
Weld weld = new Weld(); public synchronized void getCode(Long sequenceNbr, int number) throws Exception {
String code = "XM" + (int) ((Math.random() * 9 + 1) * 10000000) + "-HK" + (int) ((Math.random() * 9 + 1) * 1000);
weld.setRecDate(new Date()); List<Weld> welds = new ArrayList<>();
weld.setIsDelete(true); Project project = projectMapper.selectById(sequenceNbr);
weld.setProjectId(projectCode); QueryWrapper<Weld> wrapper = new QueryWrapper<>();
weld.setCode(code);
save(weld); wrapper.eq("project_id", project.getCode()).orderByDesc("code").last("limit 1");
Weld weld1 = weldMapper.selectOne(wrapper);
if (weld1 != null) {
String substring = weld1.getCode().substring(13, 17);
atomicNum.set(Integer.parseInt(substring));
for (int i = 0; i < number; i++) {
Weld weld = new Weld();
String i1 = String.format("%04d", atomicNum.incrementAndGet());
String code = "XM" + (project.getCode()) + "-HK" + i1;
weld.setRegion(project.getAddress());
weld.setProjectId(Long.valueOf(project.getCode()));
weld.setInstallCompany(project.getInstallationUnitId());
weld.setCode(code);
weld.setRegion(project.getAddress());
weld.setCodingMethod("0");
weld.setCodingStatus("1");
weld.setCodingDate(new Date());
welds.add(weld);
}
saveBatch(welds);
} else {
atomicNum.set(0);
for (int i = 0; i < number; i++) {
Weld weld = new Weld();
String i1 = String.format("%04d", atomicNum.incrementAndGet());
String code = "XM" + (project.getCode()) + "-HK" + i1;
weld.setRegion(project.getAddress());
weld.setProjectId(Long.valueOf(project.getCode()));
weld.setInstallCompany(project.getInstallationUnitId());
weld.setCode(code);
weld.setRegion(project.getAddress());
weld.setCodingMethod("0");
weld.setCodingStatus("1");
weld.setCodingDate(new Date());
welds.add(weld);
}
saveBatch(welds);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment