Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/main/java/com/glxp/api/idc/service/impl/IdcServiceImpl.java
master
wangwei 2 years ago
commit 3903ad57d9

@ -558,6 +558,7 @@ public class IoOrderDetailBizController extends BaseController {
ioOrderInvoiceEntity.setBatchNo(ioOrderDetailBizEntity.getBatchNo());
ioOrderInvoiceEntity.setProductDate(ioOrderDetailBizEntity.getProductDate());
ioOrderInvoiceEntity.setExpireDate(ioOrderDetailBizEntity.getExpireDate());
ioOrderInvoiceEntity.setBizIdFk(ioOrderDetailBizEntity.getId());
boolean b = ioOrderInvoiceService.insertInvoice(ioOrderInvoiceEntity);
return ResultVOUtils.success("成功");

@ -360,6 +360,7 @@ public class ThrProductsAddDiController {
FilterThrProductsRequest filterThrProductsRequest=new FilterThrProductsRequest();
filterThrProductsRequest.setStatus(2);
filterThrProductsRequest.setDiType(1);
List<ThrProductsAddDiEntity> thrProductsAddDiEntityList=thrProductsAddDiService.filterThrProductsDiLists(filterThrProductsRequest);
for (ThrProductsAddDiEntity thrProductsAddDiEntity:thrProductsAddDiEntityList){

@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
import lombok.Data;
@Data
@ -98,10 +100,12 @@ public class IoOrderInvoiceEntity {
private String licenseUrl;
@TableField(value = "remark")
private String remark;
@TableField(value = "bizIdFk")
private Integer bizIdFk;
public static final String COL_ID = "id";
public static final String COL_ORDERIDFK = "orderIdFk";

@ -138,6 +138,7 @@ public class IdcServiceImpl implements IdcService {
logger.info("UDI管理系统同步任务开始--------");
asyncDataTask(true);
}
/*自助平台生成任务,不上传*/
@Override
public void asyncSpsTask() {
@ -151,6 +152,7 @@ public class IdcServiceImpl implements IdcService {
public void asyncFetchUdiTask() {
fetchTask(false);
}
@Async
@Override
public void asyncFetchTask() {
@ -274,7 +276,6 @@ public class IdcServiceImpl implements IdcService {
}
private String fetchData(String host, Map<String, Object> params) {
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
@ -287,7 +288,6 @@ public class IdcServiceImpl implements IdcService {
.build();
String result = "";
MultipartFile[] files = {};
Date startTime = new Date();
try {
boolean success = true;
Response response = client.newCall(request).execute();
@ -302,11 +302,11 @@ public class IdcServiceImpl implements IdcService {
} else {
success = false;
}
syncAddTaskStatus(json.getJSONObject("data"),3,success,startTime,true);
syncAddTaskStatus(json.getJSONObject("data"), 3, success);
} else {
if (json.get("code") != null && json.get("data") != null) {
//logger.info("res1-->"+JSON.toJSONString(json));
syncAddTaskStatus(json.getJSONObject("data"),0,success,startTime,true);
logger.info("res1-->" + JSON.toJSONString(json));
syncAddTaskStatus(json.getJSONObject("data"), 0, success);
analyMiddle(host, json.getJSONObject("data"), files, false, false);
}
}
@ -349,10 +349,11 @@ public class IdcServiceImpl implements IdcService {
public BaseResponse downlaodSuccess(HttpServletRequest request, Map<String, Object> params) {
String sql = "update basic_export_status set receiveStatus='1',endTime=now() where id='"+params.get("taskId")+"'";
String sql = "update basic_export_status set receiveStatus='1' where id='" + params.get("taskId") + "'";
dbDao.update(sql);
return ResultVOUtils.success();
}
/****/
@Override
public BaseResponse receive(HttpServletRequest request,
@ -375,7 +376,7 @@ public class IdcServiceImpl implements IdcService {
FileUtils.SaveFileAs(content, fileName);
FileUtils.SaveFileAs(content, backFileName);
ArrayList<String> saveFiles = new ArrayList<>();
Date startTime = new Date();
if (files != null) {
int n = 0;
@ -402,7 +403,7 @@ public class IdcServiceImpl implements IdcService {
boolean success = false;
if (isLastLevel()) {
success = analyMiddle("", json, files, true, true);
syncAddTaskStatus(json,2,success,startTime,true);
syncAddTaskStatus(json, 2, success);
if (!success) {
return ResultVOUtils.error(9000, "解析失败");
@ -413,11 +414,11 @@ public class IdcServiceImpl implements IdcService {
String host = getNextHost();
String result = relay(request.getHeader("reqNo"), content, saveFiles, host);
if (IDCUtils.isJson(result)) {
syncAddTaskStatus(json,1,true,startTime,true);
syncAddTaskStatus(json, 1, true);
BaseResponse object = JSON.parseObject(result, BaseResponse.class);
return object;
} else {
syncAddTaskStatus(json,1,false,startTime,false);
syncAddTaskStatus(json, 1, false);
return ResultVOUtils.error(9000, "转发失败");
}
@ -435,6 +436,7 @@ public class IdcServiceImpl implements IdcService {
}
@Override
public BaseResponse send(String messageType, String tableName, Map<String, Object> params) {
@ -446,7 +448,9 @@ public class IdcServiceImpl implements IdcService {
public void downloadFile(String fileName, HttpServletResponse response) {
OutputStream os;
String filePathSlash = filePath.substring(filePath.length() - 1).equals("/") ? "" : fileName.substring(0, 1).equals("/") ? "" : "/";
if (!FileUtils.isFileExist(filePath + filePathSlash + fileName))
fileName = "11.jpg";
logger.info(filePath + filePathSlash + fileName);
try {
if (FileUtils.isFileExist(filePath + filePathSlash + fileName)) {
byte[] bytes = FileUtils.readFileByBytes(filePath + filePathSlash + fileName);
@ -464,34 +468,39 @@ public class IdcServiceImpl implements IdcService {
private void saveUploadStatus(Map<String, Object> params) {
Map<String, Object> map = new HashMap<String, Object>();
map.putAll(params);
map.put("id", CustomUtil.getId());
map.put("updateTime", new Date());
Map<String, Object> columns = getColumn("basic_upload_status");
String sql = "replace basic_upload_status "+DBAUtils.parseInsert(map, columns);
String sql = "insert into basic_upload_status " + DBAUtils.parseInsert(map, columns);
dbDao.save(sql);
}
private void saveExportStatus(Map<String, Object> params) {
Map<String, Object> map = new HashMap<String, Object>();
map.putAll(params);
map.put("receiveStatus", "0");
map.put("id", CustomUtil.getId());
map.put("updateTime", new Date());
Map<String, Object> columns = getColumn("basic_export_status");
String sql = "replace basic_export_status "+DBAUtils.parseInsert(map, columns);
String sql = "insert into basic_export_status " + DBAUtils.parseInsert(map, columns);
dbDao.save(sql);
}
private void saveDownloadStatus(Map<String, Object> params) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("receiveStatus", "0");
map.putAll(params);
map.put("id", CustomUtil.getId());
map.put("updateTime", new Date());
Map<String, Object> columns = getColumn("basic_download_status");
String sql = "replace basic_download_status "+DBAUtils.parseInsert(map, columns);
String sql = "insert into basic_download_status " + DBAUtils.parseInsert(map, columns);
dbDao.save(sql);
}
private void saveIdcLog(String messageType, String taskId, String content, int offset, int total) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("id", CustomUtil.getId());
@ -559,7 +568,6 @@ public class IdcServiceImpl implements IdcService {
for (int i = 0; i < Math.ceil(total / limit) + 1; i++) {
whereParams.replace("page", i * limit);
whereParams.replace("limit", limit);
Date startTime = new Date();
Map<String, Object> data = getData(messageType, tableName, params, whereParams);
String recordSql = "";
orderNum++;
@ -580,7 +588,6 @@ public class IdcServiceImpl implements IdcService {
}
recordSql += !StringUtils.isEmpty(recordSql) ? "," : "";
recordSql += "('" + UUID.randomUUID().toString().replaceAll("-", "") + "','" + tableName + "','" + list.get(m).get(keyColumn) + "','" + isEnd + "',now())";
if (childNum > -1) {
for (int z = 0; z < childNum + 1; z++) {
String[] chidTnames = childs[z].split("/");
@ -639,7 +646,7 @@ public class IdcServiceImpl implements IdcService {
}
saveIdcLog(messageType, "", tableName + ">success", i * limit, total);
}
syncAddTaskStatus(data,isUpload ? 1 : 0 ,success,startTime,isUpload);
syncAddTaskStatus(data, isUpload ? 1 : 0, success);
}
}
}
@ -650,9 +657,8 @@ public class IdcServiceImpl implements IdcService {
}
/*增加同步任务状态*/
private void syncAddTaskStatus(Map<String,Object> json,int scheduleType,boolean success,Date startTime,boolean isEnd) {
try
{
private void syncAddTaskStatus(Map<String, Object> json, int scheduleType, boolean success) {
try {
String content = JSON.toJSONString(json);
String datePath = DateUtil.formatDate(new Date(), "yyyy-MM-dd");
String fileName = filePath + datePath + "/" + json.get("messageType") + "-" + json.get("messageId") + ".udi";
@ -668,18 +674,11 @@ public class IdcServiceImpl implements IdcService {
//type,transportType,superiorService,subordinateService,cacheFilePath
Map<String, Object> map = new HashMap<>();
map.put("type", json.get("messageType"));
map.put("id", json.get("messageId"));
if(json.get("id")==null)
map.put("id", CustomUtil.getId());
map.put("transportType", scheduleType == 0 ? "1" : "2");
map.put("scheduleType", scheduleType);
map.put("taskId", json.get("messageId"));
map.put("cacheFilePath", fileName);
map.put("status", success ? "1" : "0");
map.put("startTime", startTime!=null ? startTime : new Date());
map.put("updateTime", new Date());
if(isEnd)
map.put("endTime", new Date());
if (scheduleType == 2) {
saveUploadStatus(map);
} else if (scheduleType == 3) {
@ -957,9 +956,11 @@ public class IdcServiceImpl implements IdcService {
}
return success;
}
private boolean signleDownloadFile(String syncIp, String fileName) {
OkHttpClient client = new OkHttpClient().newBuilder()
.build();;
.build();
;
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "fileName=" + fileName);
@ -992,7 +993,6 @@ public class IdcServiceImpl implements IdcService {
outputStream.flush();
} catch (Exception e) {
@ -1037,14 +1037,16 @@ public class IdcServiceImpl implements IdcService {
Map<String, Object> map = new HashMap<String, Object>();
map.putAll(params);
map.put("sql", sql);
List<Map<String, Object>> list = dbDao.list(map);
return list;
}
/*由表名获取数据*/
private Map<String, Object> getData(String messageType, String tableName, Map<String, Object> params, Map<String, Object> whereParams) {
List<Map<String, Object>> list = getList(tableName, whereParams);
Map<String, Object> map = new HashMap<String, Object>();
map.put("messageId", CustomUtil.getId());
map.put("messageId", UUID.randomUUID().toString().replaceAll("-", ""));
map.put("messageType", messageType);
map.put("apiCode", "common");
map.put("tableName", DBAUtils.tableAliasName(tableName));
@ -1058,8 +1060,6 @@ public class IdcServiceImpl implements IdcService {
}
private SystemParamConfigEntity getSystemParamConfig(String paramKey, String paramName, String defaultValue, String paramExplain) {
SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey(paramKey);
if (systemParamConfigEntity == null || (systemParamConfigEntity != null && StringUtils.isEmpty(systemParamConfigEntity.getParamKey()))) {
@ -1075,6 +1075,7 @@ public class IdcServiceImpl implements IdcService {
}
return systemParamConfigEntity;
}
private void writeFile(byte[] file, String filePath, String fileName) throws Exception {
File targetFile = new File(filePath);
if (!targetFile.exists()) {
@ -1099,7 +1100,8 @@ public class IdcServiceImpl implements IdcService {
for (int i = 0; i < columnList.size(); i++) {
Map<String, Object> column = new HashMap<String, Object>();
String dataType = columnList.get(i).get("dataType").toLowerCase().contains("char") || columnList.get(i).get("dataType").toLowerCase().contains("text") ?
"C" : columnList.get(i).get("dataType").toLowerCase().contains("date") ? "D" : "N" ;;
"C" : columnList.get(i).get("dataType").toLowerCase().contains("date") ? "D" : "N";
;
String attrName = columnList.get(i).get("columnName").toString();
if (map.get(attrName) == null) {
column.put("tableName", tname);
@ -1139,6 +1141,7 @@ public class IdcServiceImpl implements IdcService {
}
return updateTime;
}
private String setUpdateTime(String id, String updateTime) {
String sql = "";
Map<String, Object> map = dbDao.get("select * from idc_status where id='" + id + "'");
@ -1151,6 +1154,7 @@ public class IdcServiceImpl implements IdcService {
}
return updateTime;
}
private void initTable() {
alterTable("idc_var", "create table idc_var (code varchar(60),content varchar(200),PRIMARY KEY (code))");
alterTable("idc_status", "create table idc_status (id varchar(100),statusTime datetime,PRIMARY KEY (id))");
@ -1166,6 +1170,7 @@ public class IdcServiceImpl implements IdcService {
}
}
private void alterTable(String tableName, String sql) {
Map<String, String> map = dbDao.getMysql(tableName);
if (!(map != null && map.get("tableName") != null)) {

@ -28,4 +28,6 @@ public class FilterOrderDetailBizRequest extends ListPageRequest {
*
*/
private String productName;
private Long bizIdFk;
}

@ -67,6 +67,8 @@ public class IoOrderInvoiceRequest {
private String remark;
private Long bizIdFk;
public static final String COL_ID = "id";
public static final String COL_ORDERIDFK = "orderIdFk";

@ -9,9 +9,7 @@ import com.glxp.api.constant.ConstantType;
import com.glxp.api.entity.auth.InvWarehouseEntity;
import com.glxp.api.entity.basic.BasicBusTypePreEntity;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.inout.IoCodeEntity;
import com.glxp.api.entity.inout.IoCodeTempEntity;
import com.glxp.api.entity.inout.IoOrderEntity;
import com.glxp.api.entity.inout.*;
import com.glxp.api.entity.inv.InvProductDetailEntity;
import com.glxp.api.entity.system.SystemParamConfigEntity;
import com.glxp.api.service.auth.InvWarehouseService;
@ -58,18 +56,21 @@ public class IoChangeInoutService {
SystemParamConfigService systemParamConfigService;
@Resource
IoCodeTempService codeTempService;
@Resource
IoOrderInvoiceService ioOrderInvoiceService;
@Resource
IoOrderDetailBizService orderDetailBizService;
public void changeOrder(IoOrderEntity orderEntity) {
BasicBusTypePreEntity basicBusTypePreEntity = basicBusTypePreService.findByOriginAction(orderEntity.getAction());
List<IoCodeEntity> codeEnttities = codeService.findByOrderId(orderEntity.getBillNo());
if (basicBusTypePreEntity != null) {
buildInOrder(basicBusTypePreEntity, codeEnttities, orderEntity);
} else {
//结束,不生成库存,
}
if (basicBusTypePreEntity != null) {
buildInOrder(basicBusTypePreEntity, codeEnttities, orderEntity, true);
}
//结束,不生成库存,
}
@ -86,7 +87,7 @@ public class IoChangeInoutService {
List<IoCodeEntity> codeEnttities = codeService.findByOrderId(orderEntity.getBillNo());
if (basicBusTypePreEntity.getSupplementAll()) {//全量补单
invProductDetailService.insertList(invProductDetailEntities);
buildInOrder(basicBusTypePreEntity, codeEnttities, orderEntity);
buildInOrder(basicBusTypePreEntity, codeEnttities, orderEntity, false);
} else { //缺量补单
List<IoCodeEntity> inList = new ArrayList<>();
for (IoCodeEntity warehouseEntity : codeEnttities) {
@ -108,7 +109,7 @@ public class IoChangeInoutService {
InvProductDetailEntity invProductDetailEntity = filterInvByCode(invProductDetailEntities, warehouseEntity.getCode());
invProductDetailService.insert(invProductDetailEntity);
}
buildInOrder(basicBusTypePreEntity, inList, orderEntity);
buildInOrder(basicBusTypePreEntity, inList, orderEntity, false);
}
}
@ -140,7 +141,7 @@ public class IoChangeInoutService {
}
//生成单据
public void buildInOrder(BasicBusTypePreEntity bussinessChangeTypeEntity, List<IoCodeEntity> useInList, IoOrderEntity orderEntity) {
public void buildInOrder(BasicBusTypePreEntity bussinessChangeTypeEntity, List<IoCodeEntity> useInList, IoOrderEntity orderEntity, boolean isGenInovice) {
if (StrUtil.isEmpty(orderEntity.getRelKey())) {
@ -231,6 +232,8 @@ public class IoChangeInoutService {
outOrder.setCreateUser(null);
outOrder.setReviewUser(null);
orderService.insertOrder(outOrder);
//生成条码
List<IoCodeTempEntity> codeTempEntities = new ArrayList<>();
for (IoCodeEntity warehouseEntity : temps) {
IoCodeTempEntity codeTempEntity = new IoCodeTempEntity();
@ -242,6 +245,19 @@ public class IoChangeInoutService {
codeTempEntities.add(codeTempEntity);
}
codeTempService.insertBatch(codeTempEntities);
if (isGenInovice) {
//生成发票信息
List<IoOrderInvoiceEntity> invoiceEntities = ioOrderInvoiceService.findByBillNo(orderEntity.getBillNo());
if (CollUtil.isNotEmpty(invoiceEntities)) {
for (IoOrderInvoiceEntity orderInvoiceEntity : invoiceEntities) {
orderInvoiceEntity.setOrderIdFk(outOrder.getBillNo());
orderInvoiceEntity.setId(null);
orderInvoiceEntity.setBizIdFk(null);
orderInvoiceEntity.setUpdateTime(new Date());
ioOrderInvoiceService.insertInvoice(orderInvoiceEntity);
}
}
}
//根据单据设置状态 1:草稿
if (bussinessChangeTypeEntity.getAuditStatus() == 1) {

@ -806,7 +806,6 @@ public class IoCheckInoutService {
}
}
//校验是否是不入库存单据
if (bussinessTypeEntity.isInStock()) {
// if (bussinessTypeEntity.getBusType() == ConstantStatus.BUS_TYPE_NORMAL) {

@ -3,8 +3,13 @@ package com.glxp.api.service.inout;
import com.glxp.api.entity.inout.IoOrderInvoiceEntity;
import com.glxp.api.req.inout.IoOrderInvoiceRequest;
import java.util.List;
public interface IoOrderInvoiceService {
List<IoOrderInvoiceEntity> findByBillNo(String billNo);
boolean deleteByInvId(Integer id);
boolean updateByInvId(IoOrderInvoiceRequest ioOrderInvoiceRequest);

@ -1,5 +1,6 @@
package com.glxp.api.service.inout.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.glxp.api.dao.inout.IoOrderInvoiceMapper;
import com.glxp.api.entity.inout.IoOrderInvoiceEntity;
import com.glxp.api.req.inout.IoOrderInvoiceRequest;
@ -10,6 +11,7 @@ import com.glxp.api.service.inout.IoOrderInvoiceService;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
@Service
@Transactional(rollbackFor = Exception.class)
@ -17,6 +19,12 @@ public class IoOrderInvoiceServiceImpl implements IoOrderInvoiceService {
@Resource
IoOrderInvoiceMapper ioOrderInvoiceMapper;
@Override
public List<IoOrderInvoiceEntity> findByBillNo(String orderIdFk) {
return ioOrderInvoiceMapper.selectList(new QueryWrapper<IoOrderInvoiceEntity>().eq("orderIdFk", orderIdFk));
}
@Override
public boolean deleteByInvId(Integer id) {
return this.ioOrderInvoiceMapper.deleteById(id) > 0;
@ -31,6 +39,6 @@ public class IoOrderInvoiceServiceImpl implements IoOrderInvoiceService {
@Override
public boolean insertInvoice(IoOrderInvoiceEntity ioOrderInvoiceEntity) {
return ioOrderInvoiceMapper.insertInvoice(ioOrderInvoiceEntity);
return ioOrderInvoiceMapper.insert(ioOrderInvoiceEntity) > 0;
}
}

@ -36,7 +36,7 @@ public class AsyncSpsTask implements SchedulingConfigurer {
scheduledRequest.setCronName("syncIdcSps");
logger.info("syncIdcSps----------------");
ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest);
String cron = scheduledEntity != null ? scheduledEntity.getCron() : "0 0/50 * * * ?";
String cron = scheduledEntity != null ? scheduledEntity.getCron() : "0 0/1 * * * ?";
if (cron.isEmpty()) {
logger.error("cron is null");

@ -4,9 +4,9 @@ server:
spring:
datasource:
driver-class-name: com.p6spy.engine.spy.P6SpyDriver
jdbc-url: jdbc:p6spy:mysql://192.168.0.66:3364/udi_spms_wmd?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
jdbc-url: jdbc:p6spy:mysql://127.0.0.1:3306/udi_spms?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
username: root
password: Glxp@6066
password: 123456
hikari:
connection-timeout: 60000
maximum-pool-size: 20

@ -24,19 +24,25 @@
</select>
<select id="filterListInv" resultType="com.glxp.api.res.inout.IoOrderInvoiceResponse">
SELECT
ic.*,
SELECT ic.*,
(select cpmctymc from basic_products where basic_products.uuid = bu.uuid) cpmctymc,
(select ggxh from basic_products where basic_products.uuid = bu.uuid) ggxh
FROM
io_order_invoice ic
FROM io_order_invoice ic
LEFT JOIN basic_udirel bu ON bu.id = ic.bindRlFk
LEFT JOIN basic_products bp ON bu.uuid = bp.uuid
LEFT JOIN io_order_detail_biz io ON bu.id = io.bindRlFk
<where>
<if test="orderIdFk != null and orderIdFk != ''">
AND ic.orderIdFk = #{orderIdFk}
</if>
<if test="relId != null">
AND ic.bindRlFk = #{relId}
</if>
<if test="batchNo != null and batchNo != ''">
AND ic.batchNo = #{batchNo}
</if>
<if test="bizIdFk != null and bizIdFk != ''">
AND ic.bizIdFk = #{bizIdFk}
</if>
</where>
GROUP BY ic.id
</select>

@ -260,6 +260,9 @@
<if test="status != null">
AND tdi.status = #{status}
</if>
<if test="diType != null">
AND updateTime &lt;= "2023-04-5 00:00:00"
</if>
</where>
</select>

@ -18,6 +18,9 @@ CALL Pro_Temp_ColumnWork('thr_system_bus_api', 'thirdBuyName', 'varchar(255) ',
CALL Pro_Temp_ColumnWork('io_order_detail_biz', 'bindRlIds', 'varchar(255) ', 1);
CALL Pro_Temp_ColumnWork('io_order_detail_biz', 'checkFileName', 'varchar(255) ', 1);
CALL Pro_Temp_ColumnWork('io_order_invoice', 'bizIdFk', 'int ', 1);
CALL Pro_Temp_ColumnWork('auth_warehouse', 'advanceType', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('auth_warehouse', 'spUse', 'tinyint', 1);

Loading…
Cancel
Save