rev:sap同步销售单
This commit is contained in:
@@ -58,11 +58,11 @@
|
||||
</dependency>
|
||||
|
||||
<!-- 日志链路追踪 https://tlog.yomahub.com/pages/f62a84/#%E5%90%8C%E6%AD%A5%E6%97%A5%E5%BF%97-->
|
||||
<dependency>
|
||||
<groupId>com.yomahub</groupId>
|
||||
<artifactId>tlog-all-spring-boot-starter</artifactId>
|
||||
<version>1.5.0</version>
|
||||
</dependency>
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>com.yomahub</groupId>-->
|
||||
<!-- <artifactId>tlog-all-spring-boot-starter</artifactId>-->
|
||||
<!-- <version>1.5.0</version>-->
|
||||
<!-- </dependency>-->
|
||||
|
||||
<!-- 获取系统信息 -->
|
||||
<dependency>
|
||||
|
||||
@@ -143,34 +143,24 @@ public class StringUtils {
|
||||
* 获取ip地址
|
||||
*/
|
||||
public static String getIp(HttpServletRequest request) {
|
||||
// TODO 不解析IP地址
|
||||
if(true){
|
||||
return "127.0.0.1";
|
||||
}
|
||||
|
||||
String ip = request.getHeader("x-forwarded-for");
|
||||
if (ip == null || ip.length() == 0 || UNKNOWN.equalsIgnoreCase(ip)) {
|
||||
String ip = request.getHeader("X-Forwarded-For");
|
||||
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
||||
ip = request.getHeader("Proxy-Client-IP");
|
||||
}
|
||||
if (ip == null || ip.length() == 0 || UNKNOWN.equalsIgnoreCase(ip)) {
|
||||
|
||||
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
||||
ip = request.getHeader("WL-Proxy-Client-IP");
|
||||
}
|
||||
if (ip == null || ip.length() == 0 || UNKNOWN.equalsIgnoreCase(ip)) {
|
||||
|
||||
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
||||
ip = request.getRemoteAddr();
|
||||
}
|
||||
String comma = ",";
|
||||
String localhost = "127.0.0.1";
|
||||
if (ip.contains(comma)) {
|
||||
ip = ip.split(",")[0];
|
||||
}
|
||||
if (localhost.equals(ip)) {
|
||||
// 获取本机真正的ip地址
|
||||
try {
|
||||
ip = InetAddress.getLocalHost().getHostAddress();
|
||||
} catch (UnknownHostException e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
if (ip != null && ip.contains(",")) {
|
||||
String[] ipArray = ip.split(",");
|
||||
ip = ipArray[0];
|
||||
}
|
||||
|
||||
return ip;
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.json.XML;
|
||||
@@ -14,6 +15,15 @@ import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.common.utils.WebServiceUtil;
|
||||
import org.nl.wms.ext.sap.service.WmsToSapService;
|
||||
import org.nl.wms.masterdata_manage.master.service.customer.IMdCsCustomerbaseService;
|
||||
import org.nl.wms.masterdata_manage.master.service.customer.dao.MdCsCustomerbase;
|
||||
import org.nl.wms.masterdata_manage.service.master.IMdPbMeasureunitService;
|
||||
import org.nl.wms.masterdata_manage.service.master.dao.MdPbMeasureunit;
|
||||
import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService;
|
||||
import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase;
|
||||
import org.nl.wms.mps_manage.ordermanage.service.saleOrder.IMpsSaleOrderService;
|
||||
import org.nl.wms.mps_manage.ordermanage.service.saleOrder.dao.MpsSaleOrder;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
@@ -25,6 +35,15 @@ import java.util.HashMap;
|
||||
@Slf4j
|
||||
public class WmsToSapServiceImpl implements WmsToSapService {
|
||||
|
||||
@Autowired
|
||||
private IMdPbMeasureunitService mdPbMeasureunitService;
|
||||
@Autowired
|
||||
private IMdMeMaterialbaseService materialbaseService;
|
||||
@Autowired
|
||||
private IMdCsCustomerbaseService customerbaseService;
|
||||
@Autowired
|
||||
private IMpsSaleOrderService saleOrderService;
|
||||
|
||||
@Override
|
||||
public JSONObject getMater(JSONObject form) {
|
||||
return null;
|
||||
@@ -103,7 +122,7 @@ public class WmsToSapServiceImpl implements WmsToSapService {
|
||||
for (int i = 0; i < item.size(); i++) {
|
||||
JSONObject row = item.getJSONObject(i);
|
||||
boolean need_update = false;
|
||||
JSONObject sale_jo = WQLObject.getWQLObject("pcs_sale_order").query("sale_code = '" + row.getString("Vbeln") + "' AND seq_no = '" + row.getString("Posnr") + "'").uniqueResult(0);
|
||||
JSONObject sale_jo = WQLObject.getWQLObject("pcs_sale_order").query("sale_code = '" + + "' AND seq_no = '" + + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(sale_jo)) {
|
||||
sale_jo = new JSONObject();
|
||||
sale_jo.put("sale_id", IdUtil.getSnowflake(1, 1).nextId());
|
||||
@@ -119,38 +138,39 @@ public class WmsToSapServiceImpl implements WmsToSapService {
|
||||
sale_jo.put("sale_type", row.getString("Auart"));
|
||||
String material_code = row.getString("Matnr").replaceAll("^(0+)", "");
|
||||
//获取物料对应的物料标识
|
||||
JSONObject mater_jo = WQLObject.getWQLObject("MD_ME_MaterialBase").query("material_code = '" + material_code + "'").uniqueResult(0);
|
||||
MdMeMaterialbase mater_jo = materialbaseService.getOne(new QueryWrapper<MdMeMaterialbase>().eq("material_code", material_code));
|
||||
if (ObjectUtil.isEmpty(mater_jo)) {
|
||||
sale_jo.put("material_id", "0");
|
||||
sale_jo.put("is_success", "0");
|
||||
sale_jo.put("remark", "未查询到该销售订单对应的物料主数据:" + material_code);
|
||||
err_num++;
|
||||
} else {
|
||||
String material_id = mater_jo.getString("material_id");
|
||||
String material_id =mater_jo.getMaterial_id();
|
||||
sale_jo.put("material_id", material_id);
|
||||
}
|
||||
sale_jo.put("status", "10");
|
||||
sale_jo.put("sale_qty", row.getString("Kwmeng"));
|
||||
sale_jo.put("produce_seq", "1");
|
||||
String cust_code = row.getString("Kunnr");
|
||||
JSONObject cust_jo = WQLObject.getWQLObject("md_cs_customerbase").query("cust_code = '" + cust_code + "'").uniqueResult(0);
|
||||
MdCsCustomerbase cust_jo = customerbaseService.getOne(new QueryWrapper<MdCsCustomerbase>().eq("cust_code", cust_code));
|
||||
if (ObjectUtil.isNotEmpty(cust_jo)) {
|
||||
sale_jo.put("cust_id", cust_jo.getString("cust_id"));
|
||||
sale_jo.put("cust_code", cust_jo.getString("cust_code"));
|
||||
sale_jo.put("cust_name", cust_jo.getString("cust_name"));
|
||||
sale_jo.put("cust_id", cust_jo.getCust_id());
|
||||
sale_jo.put("cust_code", cust_jo.getCust_code());
|
||||
sale_jo.put("cust_name", cust_jo.getCust_name());
|
||||
} else {
|
||||
sale_jo.put("is_success", "0");
|
||||
sale_jo.put("remark", "未查询到该销售订单对应的客户信息:" + cust_code);
|
||||
err_num++;
|
||||
}
|
||||
String unit_code = row.getString("Vrkme");
|
||||
JSONObject unit_jo = WQLObject.getWQLObject("md_pb_measureunit").query("unit_name = '" + unit_code + "'").uniqueResult(0);
|
||||
MdPbMeasureunit unit_jo = mdPbMeasureunitService.getOne(new QueryWrapper<MdPbMeasureunit>()
|
||||
.eq("unit_name", unit_code));
|
||||
if (ObjectUtil.isEmpty(unit_jo)) {
|
||||
sale_jo.put("qty_unit_id", "0");
|
||||
sale_jo.put("remark", "未查询到该销售订单对应的单位信息:" + unit_code);
|
||||
err_num++;
|
||||
} else {
|
||||
sale_jo.put("qty_unit_id", unit_jo.getString("measure_unit_id"));
|
||||
sale_jo.put("qty_unit_id", unit_jo.getMeasure_unit_id());
|
||||
}
|
||||
sale_jo.put("plandeliver_date", row.getString("Edatu"));
|
||||
sale_jo.put("create_id", SecurityUtils.getCurrentUserId());
|
||||
|
||||
@@ -127,7 +127,8 @@ public class MdPbClassstandardServiceImpl extends ServiceImpl<MdPbClassstandardM
|
||||
query.eq("parent_class_id",whereJson.get("parent_class_id"));
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(whereJson.get("class_idStr"))) {
|
||||
query.last("and class_id in "+whereJson.get("class_idStr"));
|
||||
query.in("class_id",whereJson.get("class_idStr"));
|
||||
// query.last("and class_id in "+whereJson.get("class_idStr"));
|
||||
}
|
||||
List<Map<String, Object>> list = this.listMaps(query);
|
||||
return getMaps(list);
|
||||
|
||||
@@ -169,16 +169,29 @@ public class PdmProduceWorkorderController {
|
||||
@ApiOperation("报工数修改")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> reportQuery2(ReportQuery param, PageQuery pageQuery) {
|
||||
Page<Object> page = PageHelper
|
||||
.startPage(pageQuery.getPage() + 1, pageQuery.getSize())
|
||||
.setOrderBy("workorder_code desc,seq_number asc");
|
||||
param.setOrderby("true");
|
||||
Page<Object> page = null;
|
||||
if (pageQuery.getPage() != null && pageQuery.getSize() !=null){
|
||||
page = PageHelper
|
||||
.startPage(pageQuery.getPage() + 1, pageQuery.getSize())
|
||||
.setOrderBy("workorder_code desc,seq_number asc");
|
||||
param.setOrderby("true");
|
||||
}
|
||||
List<Map> list = iPdmProduceWorkorderService.reportQuery(param);
|
||||
TableDataInfo<Map> build = TableDataInfo.build(list);
|
||||
build.setTotalElements(page.getTotal());
|
||||
if (page!=null){
|
||||
build.setTotalElements(page.getTotal());
|
||||
}
|
||||
return new ResponseEntity<>(build, HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/reportQuery3")
|
||||
@Log("工单报工数")
|
||||
@ApiOperation("工单报工数")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> reportQuery3(@RequestBody ReportQuery param) {
|
||||
return new ResponseEntity<>(TableDataInfo.build(iPdmProduceWorkorderService.reportQuery(param)), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@Log("导出数据")
|
||||
@ApiOperation("导出数据")
|
||||
@PostMapping(value = "/download")
|
||||
|
||||
@@ -633,6 +633,7 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
|
||||
form.put("material_spec", material.getMaterial_spec());
|
||||
form.put("device_code", workOrder.getDevice_code());
|
||||
form.put("is_needmove", workOrder.getIs_needmove() ? 1 : 0);
|
||||
form.put("is_used_fxx", workOrder.getIs_used_fxx() ? 1 : 0);
|
||||
if (param.containsKey("extra_map")) {
|
||||
form.put("extra_map", param.getJSONObject("extra_map"));
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ https://juejin.cn/post/6844903775631572999
|
||||
<!--引入默认的一些设置-->
|
||||
<!-- <include resource="log/AutoCreateInst.xml"/>-->
|
||||
<appender name="esLogAppender" class="com.internetitem.logback.elasticsearch.ElasticsearchAppender">
|
||||
<url>http://192.168.46.225:9200/_bulk</url>
|
||||
<url>http://127.0.0.1:9200/_bulk</url>
|
||||
<index>${esIndex}</index>
|
||||
<type>mes_log</type>
|
||||
<loggerName>es-logger</loggerName> <!-- optional -->
|
||||
@@ -79,10 +79,8 @@ https://juejin.cn/post/6844903775631572999
|
||||
</appender>
|
||||
|
||||
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<withJansi>true</withJansi>
|
||||
<encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder">
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
<!-- <charset>${log.charset}</charset>-->
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
@@ -100,15 +98,14 @@ https://juejin.cn/post/6844903775631572999
|
||||
<!--所有日志最多占多大容量-->
|
||||
<totalSizeCap>20GB</totalSizeCap>
|
||||
</rollingPolicy>
|
||||
<!-- <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">-->
|
||||
<encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder">
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
|
||||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!--异步到文件-->
|
||||
<appender name="asyncFileAppender" class="com.yomahub.tlog.core.enhance.logback.async.AspectLogbackAsyncAppender">
|
||||
<appender name="asyncFileAppender" class="ch.qos.logback.classic.AsyncAppender">
|
||||
<discardingThreshold>0</discardingThreshold>
|
||||
<queueSize>500</queueSize>
|
||||
<appender-ref ref="FILE"/>
|
||||
@@ -120,7 +117,6 @@ https://juejin.cn/post/6844903775631572999
|
||||
<springProfile name="dev">
|
||||
<root level="info">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="esLogAppender"/>
|
||||
</root>
|
||||
|
||||
<logger name="jdbc.audit" level="ERROR" additivity="false">
|
||||
@@ -129,6 +125,10 @@ https://juejin.cn/post/6844903775631572999
|
||||
<logger name="jdbc.resultset" level="ERROR" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
<logger name="es-logger" level="warn" additivity="false">
|
||||
<appender-ref ref="esLogAppender"/>
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
<logger name="springfox.documentation" level="ERROR" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
@@ -168,6 +168,10 @@ https://juejin.cn/post/6844903775631572999
|
||||
<logger name="jdbc.sqltiming" level="ERROR" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
<logger name="es-logger" level="warn" additivity="false">
|
||||
<appender-ref ref="esLogAppender"/>
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
<logger name="org.jinterop" level="ERROR" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
@@ -177,26 +181,36 @@ https://juejin.cn/post/6844903775631572999
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="esLogAppender"/>
|
||||
</root>
|
||||
<logger name="es-logger" level="warn" additivity="false">
|
||||
<appender-ref ref="esLogAppender"/>
|
||||
</logger>
|
||||
<logger name="jdbc.audit" level="ERROR" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
<appender-ref ref="esLogAppender"/>
|
||||
</logger>
|
||||
<logger name="jdbc.resultset" level="ERROR" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
<appender-ref ref="esLogAppender"/>
|
||||
</logger>
|
||||
<logger name="springfox.documentation" level="ERROR" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
<appender-ref ref="esLogAppender"/>
|
||||
</logger>
|
||||
<logger name="jdbc.resultsettable" level="ERROR" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
<appender-ref ref="esLogAppender"/>
|
||||
</logger>
|
||||
<logger name="jdbc.sqlonly" level="ERROR" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
\<appender-ref ref="esLogAppender"/>
|
||||
</logger>
|
||||
<logger name="jdbc.sqltiming" level="ERROR" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
<appender-ref ref="esLogAppender"/>
|
||||
</logger>
|
||||
<logger name="org.jinterop" level="ERROR" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
\<appender-ref ref="esLogAppender"/>
|
||||
</logger>
|
||||
</springProfile>
|
||||
<!--测试环境:打印控制台-->
|
||||
@@ -211,11 +225,5 @@ https://juejin.cn/post/6844903775631572999
|
||||
</springProfile>
|
||||
|
||||
<!--生产环境:打印控制台和输出到文件-->
|
||||
<springProfile name="prod">
|
||||
<root level="info">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
</root>
|
||||
</springProfile>
|
||||
|
||||
</configuration>
|
||||
|
||||
@@ -169,8 +169,7 @@
|
||||
<el-table-column prop="confirm_time" label="审核时间" align="center" />
|
||||
</el-table>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="dialogVisible = false">确定</el-button>
|
||||
<el-button type="primary" @click="dialogVisible = false">关 闭</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
@@ -257,7 +256,7 @@ export default {
|
||||
open() {
|
||||
this.getworkprocedure()
|
||||
this.getMaterialClass()
|
||||
crudProduceshiftorder.reportQuery({ workorder_id: this.form.workorder_id }).then(res => {
|
||||
crudProduceshiftorder.reportQuery3({ workorder_id: this.form.workorder_id }).then(res => {
|
||||
this.tableData = res.content
|
||||
})
|
||||
},
|
||||
@@ -276,7 +275,7 @@ export default {
|
||||
'material_id': this.form.material_id
|
||||
}
|
||||
crudClassstandard.queryClassById(param).then(res => {
|
||||
this.form.class_name = res.content[0].class_name
|
||||
this.$set(this.form,'class_name',res.content[0].class_name)
|
||||
})
|
||||
},
|
||||
getworkprocedure() {
|
||||
|
||||
@@ -104,6 +104,7 @@ export function getReportWork(data) {
|
||||
}
|
||||
|
||||
export function reportQuery(data) {
|
||||
console.log(data)
|
||||
return request({
|
||||
url: '/api/produceWorkorder/reportQuery2',
|
||||
method: 'get',
|
||||
@@ -111,6 +112,15 @@ export function reportQuery(data) {
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
export function reportQuery3(data) {
|
||||
return request({
|
||||
url: '/api/produceWorkorder/reportQuery3',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function excelImport(data) {
|
||||
return request({
|
||||
url: 'api/produceWorkorder/excelImport',
|
||||
@@ -142,4 +152,4 @@ export function reportApprove(data) {
|
||||
})
|
||||
}
|
||||
|
||||
export default { add, addRows, edit, del, submits, reportApprove, unSubmits, getTable, openStart, saveReport, finish, getReportWork, forceFinish, reportQuery, excelImport, getNotWorkDeviceByWorkproceduceId, replaceDevice }
|
||||
export default { add, addRows, edit, del, submits, reportApprove, unSubmits, getTable, openStart, saveReport, finish, getReportWork, forceFinish, reportQuery, reportQuery3, excelImport, getNotWorkDeviceByWorkproceduceId, replaceDevice }
|
||||
|
||||
@@ -44,7 +44,18 @@
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<crudOperation v-show="false" :permission="permission" />
|
||||
<crudOperation :permission="permission">
|
||||
<el-button
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
type="success"
|
||||
icon="el-icon-position"
|
||||
size="mini"
|
||||
@click="setEmpty(crud.selections)"
|
||||
>
|
||||
设置空位
|
||||
</el-button>
|
||||
</crudOperation>
|
||||
</div>
|
||||
<!--表格渲染-->
|
||||
<el-dialog
|
||||
@@ -214,6 +225,18 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
setEmpty(rows) {
|
||||
var structIds = []
|
||||
console.log(rows)
|
||||
rows.forEach((item) => {
|
||||
structIds.push(item.workorder_id)
|
||||
})
|
||||
alert(structIds)
|
||||
// crudProduceshiftorder.submits(orders).then(res => {
|
||||
// this.crud.notify('下发成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
// this.crud.toQuery()
|
||||
// })
|
||||
}, // 取消下发
|
||||
setMaterValue(row) {
|
||||
this.materialForm.material_id = row.material_id
|
||||
this.materialForm.material_code = row.material_code
|
||||
|
||||
Reference in New Issue
Block a user