Merge remote-tracking branch 'origin/master2' into feature/sanxian_lms_0219
This commit is contained in:
@@ -80,6 +80,7 @@ public enum AcsTaskEnum {
|
||||
///api/dict/dictDetail/api/dict/dictDetail/api/dict/dictDetail
|
||||
AGV_SYSTEM_NB("1","诺宝机器人任务"),
|
||||
AGV_SYSTEM_XC("2","叉车任务"),
|
||||
AGV_SYSTEM_HR("3","海柔任务"),
|
||||
|
||||
ACS_TASK_TYPE_NOBLE_DOUBLE_TASK("1","诺宝双工任务"),
|
||||
ACS_TASK_TYPE_NOBLE_SINGLE_TASK("2","诺宝单工任务"),
|
||||
|
||||
@@ -6,6 +6,7 @@ package org.nl.common.lucene;
|
||||
* @desc desc
|
||||
*/
|
||||
|
||||
import ch.qos.logback.classic.AsyncAppender;
|
||||
import ch.qos.logback.classic.spi.ILoggingEvent;
|
||||
import com.yomahub.tlog.core.enhance.logback.async.AspectLogbackAsyncAppender;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -14,7 +15,8 @@ import org.slf4j.MDC;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public class AsyncLuceneAppender extends AspectLogbackAsyncAppender {
|
||||
//public class AsyncLuceneAppender extends AspectLogbackAsyncAppender {
|
||||
public class AsyncLuceneAppender extends AsyncAppender {
|
||||
|
||||
|
||||
public AsyncLuceneAppender() {
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
package org.nl.common.lucene;
|
||||
|
||||
import ch.qos.logback.classic.spi.LoggingEvent;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/1/24 11:26
|
||||
*/
|
||||
@Data
|
||||
public class LogEntity extends LoggingEvent {
|
||||
private Map<String,String> propertiys = new HashMap<>();
|
||||
private long timeStamp;
|
||||
private String msg;
|
||||
private String traceId;
|
||||
}
|
||||
@@ -8,6 +8,7 @@ package org.nl.common.lucene;
|
||||
|
||||
import ch.qos.logback.classic.spi.ILoggingEvent;
|
||||
import ch.qos.logback.core.AppenderBase;
|
||||
import ch.qos.logback.core.Context;
|
||||
import com.alibaba.ttl.TransmittableThreadLocal;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.lucene.analysis.Analyzer;
|
||||
@@ -23,6 +24,7 @@ import org.wltea.analyzer.lucene.IKAnalyzer;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
@@ -32,7 +34,7 @@ public class LuceneAppender extends AppenderBase<ILoggingEvent> {
|
||||
public static final TransmittableThreadLocal<String> traceIdTL = new TransmittableThreadLocal();
|
||||
public LuceneProperties properties;
|
||||
public static Directory index;
|
||||
private List<LucenePropertyAndEncoder> encoders;
|
||||
public static List<LucenePropertyAndEncoder> encoders =new ArrayList<>();
|
||||
public static IndexWriter indexWriter;
|
||||
|
||||
|
||||
@@ -43,7 +45,10 @@ public class LuceneAppender extends AppenderBase<ILoggingEvent> {
|
||||
try {
|
||||
// 读取配置文件
|
||||
Properties properties = YmlConfigFileUtil.readConfig("config/application.yml");
|
||||
|
||||
for (Property property : this.properties.getProperties()) {
|
||||
LucenePropertyAndEncoder encoder = new LucenePropertyAndEncoder(property, this.context);
|
||||
encoders.add(encoder);
|
||||
}
|
||||
// 获取配置值
|
||||
String luceneDir = properties.getProperty("lucene.index.path");
|
||||
System.out.println("---index地址----"+luceneDir);
|
||||
@@ -61,26 +66,22 @@ public class LuceneAppender extends AppenderBase<ILoggingEvent> {
|
||||
@Override
|
||||
protected void append(ILoggingEvent event) {
|
||||
Document doc = new Document();
|
||||
for (Property property : this.properties.getProperties()) {
|
||||
LucenePropertyAndEncoder encoder = new LucenePropertyAndEncoder(property, this.context);
|
||||
String encode = encoder.encode(event);
|
||||
doc.add(new StringField(property.getName(), encode, Field.Store.YES));
|
||||
}
|
||||
Map<String, String> map = event.getMDCPropertyMap();
|
||||
if (!map.isEmpty() && StringUtils.isNotEmpty(map.get("traceId"))){
|
||||
doc.add(new StringField("traceId",map.get("traceId"), Field.Store.YES));
|
||||
}else {
|
||||
doc.add(new StringField("traceId"," ", Field.Store.YES));
|
||||
}
|
||||
|
||||
doc.add(new TextField(LogMessageConstant.FIELD_MESSAGE, event.getFormattedMessage(), Field.Store.YES));
|
||||
doc.add(new StringField(LogMessageConstant.FIELD_TIMESTAMP, String.valueOf(event.getTimeStamp()),Field.Store.YES));
|
||||
doc.add(new NumericDocValuesField(LogMessageConstant.SORT_NAME, event.getTimeStamp()));
|
||||
try {
|
||||
indexWriter.addDocument(doc);
|
||||
indexWriter.commit();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
if (event instanceof LogEntity){
|
||||
LogEntity logEntity = (LogEntity) event;
|
||||
Map<String, String> propertiys = logEntity.getPropertiys();
|
||||
propertiys.forEach((a,b)->{
|
||||
doc.add(new StringField(a, b, Field.Store.YES));
|
||||
});
|
||||
doc.add(new StringField("traceId",logEntity.getTraceId(), Field.Store.YES));
|
||||
doc.add(new TextField(LogMessageConstant.FIELD_MESSAGE, logEntity.getMsg(), Field.Store.YES));
|
||||
doc.add(new StringField(LogMessageConstant.FIELD_TIMESTAMP, String.valueOf(logEntity.getTimeStamp()),Field.Store.YES));
|
||||
doc.add(new NumericDocValuesField(LogMessageConstant.SORT_NAME,logEntity.getTimeStamp()));
|
||||
try {
|
||||
indexWriter.addDocument(doc);
|
||||
indexWriter.commit();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
package org.nl.common.lucene.netty;
|
||||
|
||||
import ch.qos.logback.classic.spi.ILoggingEvent;
|
||||
import com.fasterxml.jackson.core.JsonFactory;
|
||||
import com.fasterxml.jackson.core.JsonGenerator;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.lucene.document.Field;
|
||||
import org.apache.lucene.document.StringField;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.nl.common.lucene.LogEntity;
|
||||
import org.nl.common.lucene.LuceneAppender;
|
||||
import org.nl.common.lucene.LucenePropertyAndEncoder;
|
||||
import org.nl.common.utils.MapOf;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Writer;
|
||||
import java.util.Map;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/1/24 11:07
|
||||
*/
|
||||
public class LuceneJsonWriter extends Writer {
|
||||
|
||||
private StringBuilder sendBuffer;
|
||||
private JsonGenerator jsonGenerator;
|
||||
|
||||
public LuceneJsonWriter() throws IOException {
|
||||
JsonFactory jsonFactory = new JsonFactory();
|
||||
jsonFactory.setRootValueSeparator(null);
|
||||
this.jsonGenerator = jsonFactory.createGenerator(this);
|
||||
}
|
||||
|
||||
public static LogEntity convertLog(ILoggingEvent event){
|
||||
LogEntity logEntity = new LogEntity();
|
||||
Map<String, String> map = logEntity.getPropertiys();
|
||||
for (LucenePropertyAndEncoder encoder : LuceneAppender.encoders) {
|
||||
map.put(encoder.getName(),encoder.encode(event));
|
||||
}
|
||||
String msg = String.format(event.getFormattedMessage(), event.getArgumentArray());
|
||||
logEntity.setMsg(msg);
|
||||
logEntity.setTimeStamp(event.getTimeStamp());
|
||||
Map<String, String> mdc = event.getMDCPropertyMap();
|
||||
if (!mdc.isEmpty() && StringUtils.isNotEmpty(mdc.get("traceId"))){
|
||||
logEntity.setTraceId(mdc.get("traceId"));
|
||||
}else {
|
||||
logEntity.setTraceId(" ");
|
||||
}
|
||||
return logEntity;
|
||||
}
|
||||
@Override
|
||||
public void write(@NotNull char[] cbuf, int off, int len) throws IOException {
|
||||
sendBuffer.append(cbuf, off, len);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void flush() throws IOException {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() throws IOException {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -3,12 +3,14 @@ package org.nl.common.lucene.netty;
|
||||
import ch.qos.logback.classic.spi.ILoggingEvent;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.alibaba.fastjson.serializer.SerializerFeature;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.buffer.Unpooled;
|
||||
import io.netty.util.CharsetUtil;
|
||||
import lombok.SneakyThrows;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.lucene.AsyncLuceneAppender;
|
||||
import org.nl.common.lucene.LogEntity;
|
||||
import org.nl.common.lucene.netty.AbstraceServer;
|
||||
import org.nl.common.lucene.netty.impl.ClientServer;
|
||||
import org.nl.common.lucene.netty.impl.RemoteServer;
|
||||
@@ -31,7 +33,7 @@ import java.util.Map;
|
||||
* @author ZZQ
|
||||
* @Date 2024/1/22 09:06
|
||||
*/
|
||||
@Component
|
||||
//@Component
|
||||
public class RemoteLogServer implements SmartLifecycle {
|
||||
|
||||
@Autowired
|
||||
@@ -46,10 +48,12 @@ public class RemoteLogServer implements SmartLifecycle {
|
||||
public static AsyncLuceneAppender asyncLuceneAppender;
|
||||
|
||||
public static void writeLog(ILoggingEvent event){
|
||||
LogEntity logEntity = LuceneJsonWriter.convertLog(event);
|
||||
if (LOCAL_LOG){
|
||||
asyncLuceneAppender.appendSync(event);
|
||||
asyncLuceneAppender.appendSync(logEntity);
|
||||
}else {
|
||||
ByteBuf log = Unpooled.copiedBuffer(JSON.toJSONString(event), CharsetUtil.UTF_8);
|
||||
String json = JSON.toJSONString(logEntity, SerializerFeature.IgnoreErrorGetter);
|
||||
ByteBuf log = Unpooled.copiedBuffer(json, CharsetUtil.UTF_8);
|
||||
server.channel.writeAndFlush(log);
|
||||
}
|
||||
};
|
||||
@@ -58,15 +62,15 @@ public class RemoteLogServer implements SmartLifecycle {
|
||||
@Override
|
||||
public void start() {
|
||||
try {
|
||||
String provider = redisTemplate.opsForValue().get("providers");
|
||||
String provider = redisTemplate.opsForValue().get("provider");
|
||||
if (StringUtils.isEmpty(provider)){
|
||||
String ip = Inet4Address.getLocalHost().getHostAddress();
|
||||
Map<String,Object> config = MapOf.of("ip", ip, "port", port);
|
||||
Map<String,Object> config = MapOf.of("ip", ip, "port", String.valueOf(port));
|
||||
redisTemplate.opsForValue().set("provider", JSON.toJSONString(config));
|
||||
Runtime.getRuntime().addShutdownHook(new Thread(() ->{
|
||||
System.out.println("------服务关闭-升级从变主-------");
|
||||
server.doClose();
|
||||
redisTemplate.delete("providers");
|
||||
redisTemplate.delete("provider");
|
||||
try {
|
||||
Thread.sleep(5000);
|
||||
}catch (Exception ex){}
|
||||
|
||||
@@ -39,14 +39,13 @@ public class DruidFilter extends FilterEventAdapter {
|
||||
|
||||
@Override
|
||||
protected void statementExecuteAfter(StatementProxy statement, String sql, boolean result) {
|
||||
String traceId = MDC.get("traceId");
|
||||
int size = statement.getParametersSize();
|
||||
String executeSql = sql;
|
||||
int count = 0;
|
||||
try {
|
||||
count=statement.getUpdateCount();
|
||||
}catch (Exception ex){ }
|
||||
if (StringUtils.isNotBlank(traceId) && count>0) {
|
||||
if ( count>0) {
|
||||
if (size > 0) {
|
||||
Collection<JdbcParameter> values = statement.getParameters().values();
|
||||
List<Object> params = new ArrayList<>();
|
||||
@@ -63,8 +62,7 @@ public class DruidFilter extends FilterEventAdapter {
|
||||
public ResultSetProxy statement_getResultSet(FilterChain chain, StatementProxy statement) throws SQLException {
|
||||
ResultSetProxy rs = super.statement_getResultSet(chain, statement);
|
||||
String executeSql = statement.getLastExecuteSql();
|
||||
String traceId = MDC.get("traceId");
|
||||
if (StringUtils.isNotBlank(traceId)){
|
||||
if (true){
|
||||
int result = 0;
|
||||
if (rs != null) {
|
||||
ResultSetImpl rss = rs.getResultSetRaw().unwrap(ResultSetImpl.class);
|
||||
|
||||
@@ -406,7 +406,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{
|
||||
// 调用入库分配规则
|
||||
StIvtSectattr sect = sectattrService.getOne(
|
||||
new QueryWrapper<StIvtSectattr>().lambda()
|
||||
.eq(StIvtSectattr::getSect_name, "海柔半成品库区")
|
||||
.eq(StIvtSectattr::getSect_name, "三线半成品库区")
|
||||
);
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("sect_id", sect.getSect_id());
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.enums.AcsTaskEnum;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.utils.AcsUtil;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
@@ -137,6 +138,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService{
|
||||
|
||||
@Override
|
||||
public Map<String, Object> issueTaskToAcs4(JSONArray arr) {
|
||||
String HR_TASK_TYPE = "18";
|
||||
JSONArray form = new JSONArray();
|
||||
for (Object o : arr) {
|
||||
JSONObject task = (JSONObject) o;
|
||||
@@ -148,13 +150,14 @@ public class WmsToAcsServiceImpl implements WmsToAcsService{
|
||||
, "task_group_id", task.getString("task_group_id")
|
||||
, "start_point_code", task.getString("point_code1")
|
||||
, "next_point_code", task.getString("point_code3")
|
||||
, "task_type", "18"
|
||||
, "task_type", HR_TASK_TYPE
|
||||
, "storage_task_type", task.getString("acs_task_type")
|
||||
, "task_group_id", StringUtils.isBlank(task.getString("task_group_id"))? IdUtil.getStringId():task.getString("task_group_id")
|
||||
, "priority", task.getString("priority")
|
||||
, "is_send", task.getBoolean("is_send")?"1":"0"
|
||||
, "vehicle_code", task.getString("vehicle_code")
|
||||
, "agv_system_type", task.getString("agv_system_type")
|
||||
, "agv_system_type", AcsTaskEnum.AGV_SYSTEM_HR.getCode()
|
||||
, "acs", "A3_acs_url"
|
||||
));
|
||||
form.add(param);
|
||||
}
|
||||
|
||||
@@ -18,6 +18,9 @@
|
||||
mater.material_name LIKE '%${query.material_code}%' or
|
||||
mater.material_spec LIKE '%${query.material_code}%')
|
||||
</if>
|
||||
<if test="query.product_area != null and query.product_area != ''">
|
||||
AND mater.product_area = #{query.product_area}
|
||||
</if>
|
||||
order by mater.material_code ASC
|
||||
|
||||
</select>
|
||||
|
||||
@@ -90,6 +90,9 @@ public class MdPbStoragevehicleinfoServiceImpl extends ServiceImpl<MdPbStorageve
|
||||
case "05":
|
||||
code = "VEHICCLE_CODE_LX";
|
||||
break;
|
||||
case "06":
|
||||
code = "VEHICCLE_CODE_HR";
|
||||
break;
|
||||
}
|
||||
JSONArray resultCodeArr = new JSONArray();
|
||||
int num = MapUtil.getInt(map, "num");
|
||||
@@ -120,7 +123,7 @@ public class MdPbStoragevehicleinfoServiceImpl extends ServiceImpl<MdPbStorageve
|
||||
}
|
||||
MdMeMaterialbase one = iMdMeMaterialbaseService.getOne(new QueryWrapper<MdMeMaterialbase>()
|
||||
.eq("material_code", vorm.getString("material_code"))
|
||||
.eq("is_delete",false));
|
||||
.eq("is_delete",false));
|
||||
if (one==null){
|
||||
throw new BadRequestException("当前物料编号不存在:"+vorm.getString("material_code"));
|
||||
}
|
||||
@@ -208,6 +211,9 @@ public class MdPbStoragevehicleinfoServiceImpl extends ServiceImpl<MdPbStorageve
|
||||
case "05":
|
||||
term = "VEHICCLE_CODE_LX";
|
||||
break;
|
||||
case "06":
|
||||
term = "VEHICCLE_CODE_HR";
|
||||
break;
|
||||
}
|
||||
|
||||
HashMap<String, String> map = new HashMap<>();
|
||||
|
||||
@@ -20,6 +20,7 @@ import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.system.util.CodeUtil;
|
||||
import org.nl.modules.wql.util.SpringContextHolder;
|
||||
import org.nl.wms.ext_manage.acs.service.WmsToAcsService;
|
||||
import org.nl.wms.ext_manage.acs.service.impl.WmsToAcsServiceImpl;
|
||||
import org.nl.wms.scheduler_manage.service.extendtask.manage.AbstractAcsTask;
|
||||
import org.nl.wms.scheduler_manage.service.extendtask.manage.TaskStatusEnum;
|
||||
@@ -166,7 +167,14 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
||||
}
|
||||
JSONArray array = new JSONArray();
|
||||
array.add(JSON.toJSON(task));
|
||||
Map<String, Object> result = WmsToAcsServiceImpl.staticIssueTaskToAcs(array);
|
||||
Map<String, Object> result;
|
||||
if (task.getProduct_area().equals("A3")){
|
||||
WmsToAcsService bean = SpringContextHolder.getBean(WmsToAcsService.class);
|
||||
result = bean.issueTaskToAcs4(array);
|
||||
}else {
|
||||
result = WmsToAcsServiceImpl.staticIssueTaskToAcs(array);
|
||||
}
|
||||
|
||||
String status = String.valueOf(result.get("status"));
|
||||
if (!status.equals("200")) {
|
||||
throw new BadRequestException(result.get("message") != null ? String.valueOf(result.get("message")) : "acs反馈异常");
|
||||
@@ -215,7 +223,7 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
||||
task.put("point_code1",start);
|
||||
task.put("task_status",StatusEnum.TASK_START_END_P.getCode());
|
||||
task.put("task_group_id", IdUtil.getStringId());
|
||||
return task;
|
||||
return task;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
package org.nl.wms.storage_manage.pda.controller;
|
||||
|
||||
|
||||
import cn.dev33.satoken.annotation.SaIgnore;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.anno.Log;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.wms.storage_manage.pda.service.PdaStHrBcpInService;
|
||||
import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.IStIvtIostorinvOrderService;
|
||||
import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.dao.StIvtIostorinvOrder;
|
||||
import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.dto.HrBcpIostorOrderQuery;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 手持半成品出入库顺序 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author Liuxy
|
||||
* @since 2023-08-30
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/api/pda/hrBcp/order")
|
||||
public class PdaStHrBcpOrderController {
|
||||
|
||||
@Autowired
|
||||
protected IStIvtIostorinvOrderService iStIvtIostorinvOrderService; // 出入顺序服务
|
||||
|
||||
@GetMapping
|
||||
@Log("获取出入库顺序表")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> getMaterial(HrBcpIostorOrderQuery query, PageQuery page) {
|
||||
Page<StIvtIostorinvOrder> result = iStIvtIostorinvOrderService.page(page.build(), query.build());
|
||||
return new ResponseEntity<>(TableDataInfo.build(result), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/list")
|
||||
@Log("获取出入库顺序表")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> getorders(@RequestBody JSONObject param) {
|
||||
String bar_code = param.getString("bar_code");
|
||||
HrBcpIostorOrderQuery query = new HrBcpIostorOrderQuery();
|
||||
if (StringUtils.isNotEmpty(bar_code)){
|
||||
query.setBar_code(bar_code);
|
||||
}
|
||||
Page<StIvtIostorinvOrder> result = iStIvtIostorinvOrderService.page(new Page<>(param.getInteger("page"),param.getInteger("size")), query.build());
|
||||
return new ResponseEntity<>(MapOf.of("message","操作成功","totalCount",result.getTotal(),"data",result.getRecords()), HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@PostMapping
|
||||
@Log("update顺序表")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> getMaterial(@RequestBody StIvtIostorinvOrder order) {
|
||||
if (order!=null){
|
||||
iStIvtIostorinvOrderService.updateById(order);
|
||||
}
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/delete")
|
||||
@Log("删除入库顺序表")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> delete(@RequestBody Long[] ids){
|
||||
if (ids!=null && ids.length>0){
|
||||
iStIvtIostorinvOrderService.removeByIds(Arrays.asList(ids));
|
||||
}
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
package org.nl.wms.storage_manage.semimanagehr.service.iostorInv.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import org.nl.common.domain.query.BaseQuery;
|
||||
import org.nl.common.domain.query.QParam;
|
||||
import org.nl.common.enums.QueryTEnum;
|
||||
import org.nl.wms.storage_manage.semimanage.service.iostorInv.dao.StIvtIostorinvBcp;
|
||||
import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.dao.StIvtIostorinvOrder;
|
||||
|
||||
/*
|
||||
* @author LXY
|
||||
* @Date 2023/08/01 19:49
|
||||
*/
|
||||
@Data
|
||||
public class HrBcpIostorOrderQuery extends BaseQuery<StIvtIostorinvOrder> {
|
||||
/**
|
||||
* 载具码
|
||||
*/
|
||||
private String bar_code;
|
||||
/**
|
||||
* 出入库类型
|
||||
*/
|
||||
private String type;
|
||||
|
||||
}
|
||||
@@ -15,6 +15,7 @@ public class PdaQuery extends BaseQuery<StIvtShutframeinvBcp> {
|
||||
|
||||
|
||||
private String material_code;
|
||||
private String product_area;
|
||||
|
||||
@Override
|
||||
public void paramMapping() {
|
||||
|
||||
@@ -80,7 +80,7 @@ public class PdaStHrBcpEmpOutServiceImpl implements PdaStHrBcpEmpOutService {
|
||||
|
||||
StIvtSectattr sect = sectattrService.getOne(
|
||||
new QueryWrapper<StIvtSectattr>().lambda()
|
||||
.eq(StIvtSectattr::getSect_name, "海柔半成品库区")
|
||||
.eq(StIvtSectattr::getSect_name, "三线半成品库区")
|
||||
);
|
||||
|
||||
List<StIvtStructattr> list = new ArrayList<>();
|
||||
|
||||
@@ -65,10 +65,12 @@ public class PdaStHrBcpInServiceImpl implements PdaStHrBcpInService {
|
||||
List<MdMeMaterialbase> list1 = iMdMeMaterialbaseService.list(
|
||||
new QueryWrapper<MdMeMaterialbase>().lambda()
|
||||
.eq(MdMeMaterialbase::getMaterial_type_id, "1528555445302726656")
|
||||
.eq(MdMeMaterialbase::getProduct_area, "A3")
|
||||
);
|
||||
list = list1.subList(0, Math.min(list1.size(), size));
|
||||
totalCount = list1.size();
|
||||
} else {
|
||||
whereJson.setProduct_area("A3");
|
||||
List list1 = iMdMeMaterialbaseService.getPdaBcpGetMaterial(whereJson, pageQuery);
|
||||
list = list1.subList(0, Math.min(list1.size(), size));
|
||||
totalCount = list1.size();
|
||||
|
||||
@@ -60,7 +60,7 @@ public class IosHrTask extends AbstractAcsTask {
|
||||
// 2.判断device_code2、barcode2 是否为空
|
||||
if (ObjectUtil.isNotEmpty(json.getString("device_code2")) && ObjectUtil.isNotEmpty(json.getString("barcode2"))) {
|
||||
|
||||
param.put("device_code", json.getString("device_code2"));
|
||||
param.put("device_code", json.getString("device_code1"));
|
||||
param.put("barcode", json.getString("barcode2"));
|
||||
iStIvtIostorinvHrBcpInService.fullIn(param);
|
||||
}
|
||||
@@ -78,7 +78,7 @@ public class IosHrTask extends AbstractAcsTask {
|
||||
|
||||
// 2.判断device_code2、barcode2 是否为空
|
||||
if (ObjectUtil.isNotEmpty(json.getString("device_code2")) && ObjectUtil.isNotEmpty(json.getString("barcode2"))) {
|
||||
param.put("device_code", json.getString("device_code2"));
|
||||
param.put("device_code", json.getString("device_code1"));
|
||||
param.put("barcode", json.getString("barcode2"));
|
||||
iStIvtIostorinvEmpBcpService.InEmp(param);
|
||||
}
|
||||
@@ -97,7 +97,7 @@ public class IosHrTask extends AbstractAcsTask {
|
||||
|
||||
// 2.判断device_code2、barcode2 是否为空
|
||||
if (ObjectUtil.isNotEmpty(json.getString("device_code2"))) {
|
||||
param.put("device_code", json.getString("device_code2"));
|
||||
param.put("device_code", json.getString("device_code1"));
|
||||
iStIvtIostorinvEmpBcpService.OutEmp(param);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -228,5 +228,7 @@ public class StIvtIostorinvHrBcp implements Serializable {
|
||||
*/
|
||||
private String point_code;
|
||||
|
||||
private String workprocedure_id;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -76,7 +76,7 @@ public class StIvtIostorinvEmpBcpServiceImpl implements IStIvtIostorinvEmpBcpSe
|
||||
// 1.找一个空货位
|
||||
StIvtSectattr sect = sectattrService.getOne(
|
||||
new QueryWrapper<StIvtSectattr>().lambda()
|
||||
.eq(StIvtSectattr::getSect_name, "海柔半成品库区")
|
||||
.eq(StIvtSectattr::getSect_name, "三线半成品库区")
|
||||
);
|
||||
|
||||
JSONObject jo = new JSONObject();
|
||||
@@ -173,7 +173,7 @@ public class StIvtIostorinvEmpBcpServiceImpl implements IStIvtIostorinvEmpBcpSe
|
||||
// 1.找一个空载具的货位
|
||||
StIvtSectattr sect = sectattrService.getOne(
|
||||
new QueryWrapper<StIvtSectattr>().lambda()
|
||||
.eq(StIvtSectattr::getSect_name, "海柔半成品库区")
|
||||
.eq(StIvtSectattr::getSect_name, "三线半成品库区")
|
||||
);
|
||||
|
||||
JSONObject jo = new JSONObject();
|
||||
|
||||
@@ -174,6 +174,7 @@ public class StIvtIostorinvHrBcpInServiceImpl extends ServiceImpl<StIvtIostorinv
|
||||
mst.setBase_bill_code(row.getString("base_bill_code"));
|
||||
mst.setQty_unit_name(row.getString("base_unit_name"));
|
||||
mst.setUnit_weight(row.getBigDecimal("unit_weight"));
|
||||
mst.setWorkprocedure_id(row.getString("workprocedure_id"));
|
||||
// 载具信息
|
||||
{
|
||||
MdPbStoragevehicleinfo vehicleDao = iMdPbStoragevehicleinfoService.getOne(
|
||||
@@ -275,6 +276,7 @@ public class StIvtIostorinvHrBcpInServiceImpl extends ServiceImpl<StIvtIostorinv
|
||||
.canuse_qty(mst.getPlan_qty())
|
||||
.workshop_id(mst.getWorkshop_id())
|
||||
.unit_weight(mst.getUnit_weight())
|
||||
.workprocedure_id(mst.getWorkprocedure_id())
|
||||
.build();
|
||||
structivtBcpService.save(ivtDao);
|
||||
|
||||
@@ -303,14 +305,18 @@ public class StIvtIostorinvHrBcpInServiceImpl extends ServiceImpl<StIvtIostorinv
|
||||
.set(MdPbStoragevehicleext::getMaterial_id, mst.getMaterial_id())
|
||||
.set(MdPbStoragevehicleext::getStorage_qty, mst.getPlan_qty())
|
||||
);
|
||||
|
||||
if (StringUtils.isNotEmpty(mst.getStoragevehicle_code())){
|
||||
iStIvtIostorinvOrderService.remove(new QueryWrapper<StIvtIostorinvOrder>().eq("bar_code",mst.getStoragevehicle_code()));
|
||||
}
|
||||
// 更新任务为完成
|
||||
iSchBaseTaskService.update(
|
||||
new UpdateWrapper<SchBaseTask>().lambda()
|
||||
.set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
|
||||
.eq(SchBaseTask::getTask_id, mst.getTask_id())
|
||||
);
|
||||
|
||||
//删除入库顺序表
|
||||
iStIvtIostorinvOrderService.remove(new UpdateWrapper<StIvtIostorinvOrder>()
|
||||
.eq("bar_code",mst.getStoragevehicle_code()));
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -452,6 +458,7 @@ public class StIvtIostorinvHrBcpInServiceImpl extends ServiceImpl<StIvtIostorinv
|
||||
new QueryWrapper<StIvtIostorinvOrder>().lambda()
|
||||
.eq(StIvtIostorinvOrder::getIn_device, device_code)
|
||||
.eq(StIvtIostorinvOrder::getBar_code, barcode)
|
||||
.eq(StIvtIostorinvOrder::getIs_delete, false)
|
||||
.eq(StIvtIostorinvOrder::getType, IOSEnum.IO_TYPE.code("入库"))
|
||||
.orderByDesc(StIvtIostorinvOrder::getCreate_time)
|
||||
, false
|
||||
@@ -502,11 +509,13 @@ public class StIvtIostorinvHrBcpInServiceImpl extends ServiceImpl<StIvtIostorinv
|
||||
);
|
||||
|
||||
// 解锁仓位
|
||||
structattrService.update(
|
||||
new UpdateWrapper<StIvtStructattr>().lambda()
|
||||
.set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
.eq(StIvtStructattr::getStruct_id, mstDao.getStruct_id())
|
||||
);
|
||||
if (mstDao !=null){
|
||||
structattrService.update(
|
||||
new UpdateWrapper<StIvtStructattr>().lambda()
|
||||
.set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
.eq(StIvtStructattr::getStruct_id, mstDao.getStruct_id())
|
||||
);
|
||||
}
|
||||
|
||||
// 删除任务
|
||||
iSchBaseTaskService.update(
|
||||
|
||||
@@ -305,16 +305,16 @@ public class StIvtIostorinvHrBcpOutServiceImpl extends ServiceImpl<StIvtIostorin
|
||||
@Transactional
|
||||
public StIvtStructivtBcp autoConfirmout(JSONObject form) {
|
||||
StIvtStructivtBcp bcpStruct = RedissonUtils.lockAndReturn(() -> {
|
||||
MdMeMaterialbase material = materialbaseService.getOne(new QueryWrapper<MdMeMaterialbase>().eq("material_id", form.getString("material_id")));
|
||||
JSONObject param = new JSONObject();
|
||||
param.put("stor_id", form.getString("stor_id"));
|
||||
param.put("sect_id", form.getString("sect_id"));
|
||||
param.put("material_id", form.getString("material_id"));
|
||||
param.put("rule_type", RuleUtil.PRODUCTION_OUT_2);
|
||||
// 2.锁定仓位
|
||||
MdMeMaterialbase material = materialbaseService.getOne(new QueryWrapper<MdMeMaterialbase>().eq("material_id", form.getString("material_id")));
|
||||
JSONObject param = new JSONObject();
|
||||
param.put("stor_id", form.getString("stor_id"));
|
||||
param.put("sect_id", form.getString("sect_id"));
|
||||
param.put("material_id", form.getString("material_id"));
|
||||
param.put("rule_type", RuleUtil.PRODUCTION_OUT_2);
|
||||
// 2.锁定仓位
|
||||
StIvtStructivtBcp stIvtStructivtBcp;
|
||||
if (form.get("stIvtStructivt")==null){
|
||||
stIvtStructivtBcp = divRuleCpService.divRuleOutBcp(param);
|
||||
stIvtStructivtBcp = divRuleCpService.divRuleOutBcp(param);
|
||||
}else {
|
||||
stIvtStructivtBcp=(StIvtStructivtBcp)form.get("stIvtStructivt");
|
||||
}
|
||||
@@ -442,7 +442,7 @@ public class StIvtIostorinvHrBcpOutServiceImpl extends ServiceImpl<StIvtIostorin
|
||||
this.save(mst);
|
||||
this.lockStruct(structattr[0].getStruct_code(), "出库锁",mst.getTask_id());
|
||||
}
|
||||
} ,"banchengpin_ruku",2);
|
||||
} ,"banchengpin_ruku",2);
|
||||
return structattr[0];
|
||||
}
|
||||
|
||||
@@ -468,6 +468,8 @@ public class StIvtIostorinvHrBcpOutServiceImpl extends ServiceImpl<StIvtIostorin
|
||||
.task_group_id(IdUtil.getStringId())
|
||||
.point_code3(mst.getPoint_code())
|
||||
.point_code1(mst.getStruct_code())
|
||||
.extParam(MapOf.of("material_id",mst.getMaterial_id(),
|
||||
"material_qty",mst.getPlan_qty(),"table_fk_id",mst.getIostorinv_id()))
|
||||
.vehicle_code(mst.getStoragevehicle_code())
|
||||
.product_area(mst.getWorkshop_id())
|
||||
.callback((Consumer<String>) mst::setTask_id)
|
||||
|
||||
@@ -81,7 +81,7 @@ public class StIvtMoveinvHrBcpServiceImpl extends ServiceImpl<StIvtMoveinvHrBcpM
|
||||
|
||||
// 新增
|
||||
mst.setMoveinv_id(IdUtil.getStringId());
|
||||
mst.setBill_code(CodeUtil.getNewCode("BCP_MOVE_CODE"));
|
||||
mst.setBill_code(CodeUtil.getNewCode("MOVE_CODE"));
|
||||
mst.setBuss_type(form.getString("buss_type"));
|
||||
mst.setBill_type(form.getString("buss_type"));
|
||||
mst.setStor_id(form.getString("stor_id"));
|
||||
@@ -309,8 +309,8 @@ public class StIvtMoveinvHrBcpServiceImpl extends ServiceImpl<StIvtMoveinvHrBcpM
|
||||
// 更新任务
|
||||
taskService.update(
|
||||
new UpdateWrapper<SchBaseTask>().lambda()
|
||||
.eq(SchBaseTask::getTask_id, form.getString("task_id"))
|
||||
.set(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode())
|
||||
.eq(SchBaseTask::getTask_id, form.getString("task_id"))
|
||||
.set(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode())
|
||||
);
|
||||
|
||||
break;
|
||||
|
||||
@@ -76,7 +76,7 @@ public class StIvtMoveinvdtlHrBcpServiceImpl extends ServiceImpl<StIvtMoveinvdtl
|
||||
StIvtMoveinvdtlHrBcp moveinvdtlCp = list.get(0);
|
||||
PointEvent event = PointEvent.builder()
|
||||
.type(AcsTaskEnum.TASK_STRUCT_BCP_HR_MOVE)
|
||||
.acs_task_type(AcsTaskEnum.ACS_TASK_TYPE_NON_WEIGHING_TASK_OF_PS20.getCode())
|
||||
.acs_task_type("19")
|
||||
.task_group_id(IdUtil.getStringId())
|
||||
.point_code1(form.getString("turnout_struct_code"))
|
||||
.point_code3(form.getString("turnin_struct_code"))
|
||||
|
||||
@@ -101,5 +101,9 @@ public class StIvtStructivtHrBcp implements Serializable {
|
||||
*/
|
||||
private BigDecimal unit_weight;
|
||||
|
||||
/**
|
||||
* 工序标识
|
||||
*/
|
||||
private String workprocedure_id;
|
||||
|
||||
}
|
||||
|
||||
@@ -50,6 +50,9 @@
|
||||
<if test="query.sect_id != null and query.sect_id != ''">
|
||||
and sa.sect_id = #{query.sect_id}
|
||||
</if>
|
||||
<if test="query.sect_code != null and query.sect_code != ''">
|
||||
and sa.sect_code = #{query.sect_code}
|
||||
</if>
|
||||
<if test="query.struct_search != null and query.struct_search != ''">
|
||||
and (sa.struct_code = #{query.struct_search} OR sa.struct_name = #{query.struct_search})
|
||||
</if>
|
||||
@@ -123,7 +126,8 @@
|
||||
attr.sect_code,
|
||||
attr.sect_name,
|
||||
attr.stor_name,
|
||||
attr.storagevehicle_code
|
||||
attr.storagevehicle_code,
|
||||
attr.lock_type
|
||||
FROM
|
||||
st_ivt_structivt_hr_bcp ivt
|
||||
LEFT JOIN md_me_materialbase mater ON ivt.material_id = mater.material_id
|
||||
|
||||
@@ -16,6 +16,8 @@ public class StructIvtHrBcpQuery extends BaseQuery<StIvtStructivtBcp> {
|
||||
|
||||
private String sect_id;
|
||||
|
||||
private String sect_code;
|
||||
|
||||
private String struct_search;
|
||||
|
||||
private String material_search;
|
||||
|
||||
@@ -51,6 +51,7 @@ public class StIvtStructivtHrBcpServiceImpl extends ServiceImpl<StIvtStructivtHr
|
||||
@Override
|
||||
public Object getBcpIvt(StructIvtHrBcpQuery query, PageQuery pageQuery) {
|
||||
com.github.pagehelper.Page<Object> page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize());
|
||||
query.setSect_code("HKQ001");
|
||||
List<Map> mst_detail = this.baseMapper.getBcpIvt(query, pageQuery);
|
||||
TableDataInfo<Map> build = TableDataInfo.build(mst_detail);
|
||||
build.setTotalElements(page.getTotal());
|
||||
|
||||
@@ -34,11 +34,12 @@
|
||||
</encoder>
|
||||
</appender>
|
||||
<!--异步到文件-->
|
||||
<appender name="asyncFileAppender" class="com.yomahub.tlog.core.enhance.logback.async.AspectLogbackAsyncAppender">
|
||||
<appender name="asyncFileAppender" class="ch.qos.logback.classic.AsyncAppender">
|
||||
<discardingThreshold>2</discardingThreshold>
|
||||
<queueSize>500</queueSize>
|
||||
<appender-ref ref="FILE"/>
|
||||
</appender>
|
||||
|
||||
<appender name="luceneAppender" class="org.nl.common.lucene.LuceneAppender" >
|
||||
<properties>
|
||||
<property>
|
||||
@@ -76,9 +77,10 @@
|
||||
<queueSize>512</queueSize>
|
||||
</appender>
|
||||
|
||||
<!--开发环境:打印控制台-->
|
||||
<springProfile name="dev">
|
||||
<root level="debug">
|
||||
|
||||
<springProfile name="dev3">
|
||||
<root level="info">
|
||||
<appender-ref ref="asyncLuceneAppender"/>
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</root>
|
||||
<logger name="jdbc" level="ERROR" additivity="true">
|
||||
@@ -106,17 +108,10 @@
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
</logger>
|
||||
</springProfile>
|
||||
|
||||
<springProfile name="dev3">
|
||||
<root level="info">
|
||||
<appender-ref ref="asyncLuceneAppender"/>
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</root>
|
||||
</springProfile>
|
||||
<springProfile name="prod">
|
||||
<root level="info">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="asyncLuceneAppender"/>
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</root>
|
||||
<logger name="jdbc" level="ERROR" additivity="true">
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
|
||||
Reference in New Issue
Block a user