Commit 5221cc34 authored by 温志超's avatar 温志超

Merge remote-tracking branch 'origin/master'

parents 09c3e608 f08dc569
......@@ -59,6 +59,8 @@ basic.error.data.exist=\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E21\u0E35\u0E2D\u0
basic.error.data.not.exist=\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E21\u0E35\u0E2D\u0E22\u0E39\u0E48!
basic.import.error=\u0E01\u0E32\u0E23\u0E19\u0E4D\u0E32\u0E40\u0E02\u0E49\u0E32\u0E25\u0E49\u0E21\u0E40\u0E2B\u0E25\u0E27:{0}
basic.import.error.not.null=\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E19\u0E4D\u0E32\u0E40\u0E02\u0E49\u0E32\u0E15\u0E49\u0E2D\u0E07\u0E44\u0E21\u0E48\u0E27\u0E48\u0E32\u0E07\u0E40\u0E1B\u0E25\u0E48\u0E32
basic.excel.error.not.null.DictionaryFormat=\u0E01\u0E23\u0E38\u0E13\u0E32\u0E1B\u0E23\u0E31\u0E1A\u0E41\u0E15\u0E48\u0E07\u0E04\u0E4D\u0E32\u0E2D\u0E18\u0E34\u0E1A\u0E32\u0E22\u0E1B\u0E23\u0E30\u0E01\u0E2D\u0E1A\u0E02\u0E2D\u0E07\u0E1E\u0E08\u0E19\u0E32\u0E19\u0E38\u0E01\u0E23\u0E21DictionaryFormat
basic.excel.error.not.null.StaticDataMappingFormat=\u0E01\u0E23\u0E38\u0E13\u0E32\u0E1B\u0E23\u0E31\u0E1A\u0E41\u0E15\u0E48\u0E07\u0E01\u0E32\u0E23\u0E41\u0E21\u0E1B\u0E04\u0E4D\u0E32\u0E2D\u0E18\u0E34\u0E1A\u0E32\u0E22\u0E1B\u0E23\u0E30\u0E01\u0E2D\u0E1AStaticDataMappingFormat
basic.error.data.cannot.delete=\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E27\u0E31\u0E2A\u0E14\u0E38\u0E19\u0E35\u0E49\u0E16\u0E39\u0E01\u0E43\u0E0A\u0E49\u0E41\u0E25\u0E49\u0E27\u0E41\u0E25\u0E30\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E25\u0E1A\u0E44\u0E14\u0E49!
#md.material
md.material.data.limit.can.not.delete=\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E27\u0E31\u0E2A\u0E14\u0E38\u0E19\u0E35\u0E49\u0E16\u0E39\u0E01\u0E43\u0E0A\u0E49\u0E41\u0E25\u0E49\u0E27\u0E41\u0E25\u0E30\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E25\u0E1A\u0E44\u0E14\u0E49!
......@@ -176,6 +178,7 @@ pro.schedule.error.to.selfmade.quantity.black=\u0E01\u0E32\u0E23\u0E41\u0E1B\u0E
pro.schedule.error.not.null.starttime=\u0E40\u0E27\u0E25\u0E32\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E44\u0E21\u0E48\u0E27\u0E48\u0E32\u0E07
pro.schedule.error.not.null.duration=\u0E23\u0E30\u0E22\u0E30\u0E40\u0E27\u0E25\u0E32\u0E01\u0E32\u0E23\u0E1C\u0E25\u0E34\u0E15\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E32\u0E01\u0E01\u0E27\u0E48\u0E320
pro.schedule.limit.min.duration=\u0E23\u0E30\u0E22\u0E30\u0E40\u0E27\u0E25\u0E32\u0E01\u0E32\u0E23\u0E1C\u0E25\u0E34\u0E15\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E32\u0E01\u0E01\u0E27\u0E48\u0E320
pro.schedule.error.not.null.vendor=\u0E15\u0E31\u0E27\u0E1B\u0E23\u0E30\u0E21\u0E27\u0E25\u0E1C\u0E25\u0E20\u0E32\u0E22\u0E19\u0E2D\u0E01\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E27\u0E48\u0E32\u0E07\u0E44\u0E14\u0E49
pro.schedule.error.cannot.use.standardtime=\u0E44\u0E21\u0E48\u0E23\u0E2D\u0E07\u0E23\u0E31\u0E1A\u0E2B\u0E19\u0E48\u0E27\u0E22\u0E07\u0E32\u0E19\u0E0A\u0E31\u0E48\u0E27\u0E42\u0E21\u0E07{0}
pro.schedule.error.cal.error1=\u0E40\u0E27\u0E25\u0E32\u0E2A\u0E34\u0E49\u0E19\u0E2A\u0E38\u0E14\u0E02\u0E2D\u0E07\u0E1B\u0E0F\u0E34\u0E17\u0E34\u0E19\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E32\u0E01\u0E01\u0E27\u0E48\u0E32\u0E40\u0E27\u0E25\u0E32\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19
pro.schedule.error.not.exist.solution=\u0E15\u0E32\u0E23\u0E32\u0E07\u0E07\u0E32\u0E19\u0E01\u0E32\u0E23\u0E1C\u0E25\u0E34\u0E15:{0}\u0E44\u0E21\u0E48\u0E1E\u0E1A\u0E23\u0E38\u0E48\u0E19\u0E01\u0E32\u0E23\u0E1C\u0E25\u0E34\u0E15
......
......@@ -14,6 +14,8 @@ import com.ximai.common.core.domain.entity.SysDept;
import com.ximai.common.core.domain.entity.SysRole;
import com.ximai.common.utils.excel.I18nField;
import com.ximai.common.utils.excel.converter.LocalDateTimeConverter;
import com.ximai.common.utils.excel.converter.StaticDataMappingConverter;
import com.ximai.common.utils.excel.converter.StaticDataMappingFormat;
import com.ximai.common.xss.Xss;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......@@ -33,14 +35,7 @@ import java.util.Set;
*/
@Data
@ApiModel("用户导入")
public class SysUserExcelImport extends BaseExcelImport {
/**
* 部门ID
*/
@ExcelProperty("部门编号")
@I18nField("user.jcaptcha.error2")
private Long deptId;
public class SysUserExcelImport {
/**
* 用户账号
......@@ -55,7 +50,6 @@ public class SysUserExcelImport extends BaseExcelImport {
@ExcelProperty("用户名称")
@I18nField("user.nickName")
private String nickName;
/**
* 用户邮箱
*/
......@@ -73,32 +67,10 @@ public class SysUserExcelImport extends BaseExcelImport {
/**
* 用户性别
*/
@ExcelProperty("用户性别")
@ExcelProperty(value = "用户性别", converter = StaticDataMappingConverter.class)
@StaticDataMappingFormat(value = {"1","2"},excelValue = {"男","女"})
private String sex;
/**
* 帐号状态(0正常 1停用)
*/
@ExcelProperty("帐号状态")
private String status;
/**
* 删除标志(0代表存在 2代表删除)
*/
private String delFlag;
/**
* 最后登录IP
*/
@ExcelProperty("最后登录IP")
private String loginIp;
/**
* 最后登录时间
*/
@ExcelProperty(value = "最后登录时间", converter = LocalDateTimeConverter.class)
private Date loginDate;
@ApiModelProperty("国际化语言")
private String locale;
}
......@@ -7,9 +7,11 @@ import com.ximai.mes.md.domain.MdItem;
import com.ximai.mes.md.vo.ItemUpdateMesVo;
import com.ximai.mes.md.vo.MdItemVo;
import com.ximai.mes.md.vo.SapItemVo;
import com.ximai.mes.remote.dto.MdItemErpDto;
import java.io.InputStream;
import java.util.List;
import java.util.Map;
public interface IMdItemService {
......@@ -113,8 +115,22 @@ public interface IMdItemService {
void syncErpData();
/**
* 同步新增ERP数据
* 同步ERP数据
* 查询所有ERP同步标识为未同步数据,同步成功后修改为已同步
* 每次更新1000行,直到所有数据同步完成为止
*/
void syncEditErpData();
/**
* 同步ERP数据
* 查询所有ERP同步标识为未同步数据,同步成功后修改为已同步
* 每次更新1000行,直到所有数据同步完成为止
*/
void syncEditErpData(MdItemErpDto itemErpDto, Map<Long, MdItemType> itemTypeMap);
/**
* 初始同步新增ERP数据
*/
void syncAddErpData();
void initSyncAddErpData();
}
......@@ -100,6 +100,8 @@ public class MdItemServiceImpl implements IMdItemService {
private ErpService erpService;
@Autowired
private IMdItemWarehouseService itemWarehouseService;
@Autowired
private IMdItemService mdItemService;
@Override
......@@ -469,13 +471,11 @@ public class MdItemServiceImpl implements IMdItemService {
@Override
public void syncErpData() {
//优先更新修改数据
this.syncEditErpData();
//新增创建数据
this.syncAddErpData();
mdItemService.syncEditErpData();
}
@Transactional
public void syncAddErpData(){
public void initSyncAddErpData(){
MdItemErpQuery itemErpQuery = new MdItemErpQuery();
//获取最晚创建时间
Date maxErpCreateTime = mdItemMapper.maxErpCreateTime();
......@@ -515,64 +515,90 @@ public class MdItemServiceImpl implements IMdItemService {
});
//存在数据续断抓取,直到所有数据更新完成
if(list.size()==1000){
this.syncAddErpData();
this.initSyncAddErpData();
}
}
@Transactional
public void syncEditErpData(){
MdItemErpQuery itemErpQuery = new MdItemErpQuery();
//获取最晚修改时间
Date maxErpUpdateTime = mdItemMapper.maxErpUpdateTime();
if(maxErpUpdateTime==null){
Calendar curr = Calendar.getInstance();
curr.set(Calendar.YEAR, 2000);
maxErpUpdateTime = curr.getTime();
}
ErpPageParams.Sort sort = new ErpPageParams.Sort(){{
List<ErpPageParams.Order> orders = new ArrayList<>();
orders.add(new ErpPageParams.Order("modiDate","asc"));
this.setOrders(orders);
}};
itemErpQuery.setSyncMarkNe("Y");
itemErpQuery.setSort(sort);
itemErpQuery.setGtEqModiDate(maxErpUpdateTime);
itemErpQuery.setCurrent(1);
itemErpQuery.setPageSize(1000);//每次抓取1000行
List<MdItemErpDto> list = erpService.getItemList(itemErpQuery).getData();
Map<Long, MdItemType> itemTypeMap = iItemTypeService.selectItemTypeList(new MdItemType()).stream().collect(Collectors.toMap(s->s.getItemTypeId(),s->s));
list.forEach(s->{
List<MdItem> dbList = mdItemMapper.selectMdItemByCode(s.getItemCode());
if(dbList.size()==0) {
if ("Y".equalsIgnoreCase(s.getVerifyStatus())) {
MdItem insertTemp = BeanUtil.toBean(s, MdItem.class);
this.insertMdItem(insertTemp);
}
}else{
BeanUtil.copyProperties(s, dbList.get(0));
if(!"Y".equalsIgnoreCase(s.getVerifyStatus())){
dbList.get(0).setEnableFlag("N");
mdItemService.syncEditErpData(s, itemTypeMap);
});
//存在数据续断抓取,直到所有数据更新完成
if(list.size()==1000){
this.syncEditErpData();
}
}
@Transactional
@Override
public void syncEditErpData(MdItemErpDto s, Map<Long, MdItemType> itemTypeMap) {
List<MdItem> dbList = mdItemMapper.selectMdItemByCode(s.getItemCode());
if(dbList.size()==0) {
if ("Y".equalsIgnoreCase(s.getVerifyStatus())) {
MdItem insertTemp = BeanUtil.toBean(s, MdItem.class);
if(itemTypeMap.containsKey(s.getItemTypeId())){
insertTemp.setItemTypeName(itemTypeMap.get(s.getItemTypeId()).getItemTypeName());
}
this.updateMdItem(dbList.get(0));
this.insertMdItem(insertTemp);
}
}else{
BeanUtil.copyProperties(s, dbList.get(0));
if(!"Y".equalsIgnoreCase(s.getVerifyStatus())){
dbList.get(0).setEnableFlag("N");
}
if(itemTypeMap.containsKey(s.getItemTypeId())){
dbList.get(0).setItemTypeName(itemTypeMap.get(s.getItemTypeId()).getItemTypeName());
}
//更新库房明细
List<MdItemWarehouseErpDto> detailList = s.getWarehouseList();
MdItemWarehouse itemWarehouseQuery = new MdItemWarehouse();
itemWarehouseQuery.setItemCode(s.getItemCode());
List<MdItemWarehouseDto> detailDblist = itemWarehouseService.selectMdItemWarehouseList(itemWarehouseQuery);
detailList.forEach(s2->{
java.util.Optional<MdItemWarehouseDto> itemWarehouseDto = detailDblist.stream().filter(temp->temp.getWarehouseCode().equals(s2.getWarehouseCode())).findFirst();
this.updateMdItem(dbList.get(0));
}
//更新库房明细
List<MdItemWarehouseErpDto> detailList = s.getWarehouseList();
MdItemWarehouse itemWarehouseQuery = new MdItemWarehouse();
itemWarehouseQuery.setItemCode(s.getItemCode());
List<MdItemWarehouseDto> dbDetaillist = itemWarehouseService.selectMdItemWarehouseList(itemWarehouseQuery);
detailList.forEach(s2->{
QueryWrapper<MdItem> itemQuery = new QueryWrapper<>();
itemQuery.eq("item_code", s2.getItemCode());
List<MdItem> itemList = mdItemService.selectListByQw(itemQuery);
if(itemList.size()>0){
MdItem dbItem = itemList.get(0);
java.util.Optional<MdItemWarehouseDto> itemWarehouseDto = dbDetaillist.stream().filter(temp->temp.getWarehouseCode().equals(s2.getWarehouseCode())).findFirst();
if(itemWarehouseDto.isPresent()){
MdItemWarehouseUpdate updateDetail = BeanUtil.toBean(itemWarehouseDto.get(), MdItemWarehouseUpdate.class);
BeanUtil.copyProperties(s2, updateDetail);
updateDetail.setItemId(dbItem.getItemId());
itemWarehouseService.updateMdItemWarehouse(updateDetail);
}else {
MdItemWarehouseCreate insertDetail = BeanUtil.toBeanIgnoreError(s2, MdItemWarehouseCreate.class);
insertDetail.setItemId(dbItem.getItemId());
itemWarehouseService.insertMdItemWarehouse(insertDetail);
}
});
}
});
//存在数据续断抓取,直到所有数据更新完成
if(list.size()==1000){
this.syncEditErpData();
}
//判断删除关联仓库
dbDetaillist.forEach(s2->{
if(detailList.stream().noneMatch(temp->temp.getWarehouseCode().equals(s2.getWarehouseCode()))){
itemWarehouseService.deleteMdItemWarehouseByItemWarehouseId(s2.getItemWarehouseId());
}
});
//回写ERP标识
MdItemSyncMarkUpdate syncMarkUpdate = new MdItemSyncMarkUpdate();
syncMarkUpdate.setItemCode(s.getItemCode());
ErpResponseResult<Object> rst = erpService.materialSyncMark(syncMarkUpdate);
if(!rst.isSuccess()){
log.error(String.format("回写物料同步状态失败:%s,%s", s.getItemCode(), rst.getErrorMessage()));
throw new ServiceException(rst.getErrorMessage());
}
}
}
package com.ximai.mes.pro.domain.proWorkOrder;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ximai.common.annotation.Excel;
import com.ximai.common.core.domain.BaseEntity;
import com.ximai.mes.pro.domain.sap.SAPDtoProWorkOrderBom;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Date;
/**
* 生产工单BOM对象 pro_work_order_bom
......@@ -42,10 +46,10 @@ public class ProWorkOrderBom extends BaseEntity {
@Excel(name = "物料ID")
private Long itemId;
/**
* 物料ID
* 物料编码
*/
@Excel(name = "物料编号")
private Long itemCode;
@ApiModelProperty("物料编号")
private String itemCode;
/**
* sap的物料编号
......@@ -133,6 +137,20 @@ public class ProWorkOrderBom extends BaseEntity {
@Excel(name = "是否倒冲")
private String isBackflush;
@ApiModelProperty("工序名")
private String opName;
@ApiModelProperty("工单单别")
private String orderSource;
@ApiModelProperty("erp创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date erpCreateTime;
@ApiModelProperty("erp修改时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date erpUpdateTime;
private String itemName;
......
......@@ -2,6 +2,7 @@ package com.ximai.mes.pro.service.proWorkOrder;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ximai.mes.constant.WorkorderStatusEnum;
import com.ximai.mes.md.domain.MdItem;
import com.ximai.mes.pro.domain.ep.EPDtoProWorkOrder;
import com.ximai.mes.pro.domain.proWorkOrder.ProWorkorder;
import com.ximai.mes.pro.domain.sap.SAPDtoProWorkOrder;
......@@ -9,6 +10,7 @@ import com.ximai.mes.pro.domain.vo.ProWorkOrderProcessToolLoseVo;
import com.ximai.mes.pro.domain.vo.ProWorkorderQuery;
import com.ximai.mes.pro.domain.vo.ProWorkorderVo;
import com.ximai.mes.pro.domain.vo.proWorkOrder.*;
import com.ximai.mes.remote.dto.ProWorkorderErpDto;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
......@@ -187,7 +189,21 @@ public interface IProWorkorderService {
void syncErpData();
/**
* 同步新增ERP数据
* 首次新增同步ERP数据
*/
void syncAddErpData();
void initSyncAddErpData();
/**
* 同步修改ERP数据
* 查询所有ERP同步标识为未同步数据,同步成功后修改为已同步
* 每次更新1000行,直到所有数据同步完成为止
*/
void syncEditErpData();
/**
* 同步修改ERP数据
* 查询所有ERP同步标识为未同步数据,同步成功后修改为已同步
* 每次更新1000行,直到所有数据同步完成为止
*/
void syncEditErpData(ProWorkorderErpDto workorderErpDto, Map<String, MdItem> itemMap);
}
......@@ -42,4 +42,17 @@ public interface ErpService {
@PostMapping(value = "/mocta/getMoctaList")
ErpResponseResult<List<ProWorkorderErpDto>> getWorkorderList(ProWorkorderErpQuery workorderErpQuery);
/**
* 工单更新状态标识
*/
@PostMapping(value = "/mocta/syncMark")
ErpResponseResult<Object> workorderSyncMark(ProWorkorderSyncMarkUpdate syncMarkUpdate);
/**
* 物料更新状态标识
*/
@PostMapping(value = "/invmb/syncMark")
ErpResponseResult<Object> materialSyncMark(MdItemSyncMarkUpdate syncMarkUpdate);
}
......@@ -25,15 +25,19 @@ public class MdItemErpQuery extends ErpPageParams
@ApiModelProperty("品名")
private String itemName;
@JsonProperty("neUdf08")
@ApiModelProperty("同步标识状态-不等于")
private String syncMarkNe;
@JsonProperty("mb109")
@ApiModelProperty("核准状态")
private String verifyStatus;
@ApiModelProperty("创建日期")
@ApiModelProperty("创建日期-大于等于")
@JsonFormat(pattern = "yyyyMMddHHmmssSSS")
private Date gtEqCreateDate;
@ApiModelProperty("修改日期")
@ApiModelProperty("修改日期-大于等于")
@JsonFormat(pattern = "yyyyMMddHHmmssSSS")
private Date gtEqModiDate;
}
package com.ximai.mes.remote.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* 物料对象 MdItemErpQuery
*
* @date 2024-10-18
*/
@Data
public class MdItemSyncMarkUpdate
{
@ApiModelProperty("品号")
@JsonProperty("mb001")
private String itemCode;
@ApiModelProperty("MES同步标识")
@JsonProperty("udf08")
private String syncMark="Y";
}
......@@ -2,6 +2,7 @@ package com.ximai.mes.remote.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.ximai.mes.config.EmptyStringToLongDeserializer;
import com.ximai.mes.config.TrimStringDeserializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -20,10 +21,12 @@ public class MdItemWarehouseErpDto
@JsonProperty("mc002")
@ApiModelProperty("仓库编号")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String warehouseCode;
@JsonProperty("mc001")
@ApiModelProperty("物料编号")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String itemCode;
@JsonProperty("mc004")
......@@ -32,6 +35,7 @@ public class MdItemWarehouseErpDto
@JsonProperty("mc015")
@ApiModelProperty("库位")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String location;
}
......@@ -18,20 +18,20 @@ public class ProWorkorderBomErpDto
{
private static final long serialVersionUID = 1L;
@ApiModelProperty("材料品号")
@JsonProperty("tb003")
@ApiModelProperty("工单单别")
@JsonProperty("tb001")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String itemCode;
private String orderSource;
@ApiModelProperty("材料品名")
@JsonProperty("tb012")
@ApiModelProperty("工单单号")
@JsonProperty("tb002")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String itemName;
private String workorderCode;
@ApiModelProperty("材料规格")
@JsonProperty("tb013")
@ApiModelProperty("材料品号")
@JsonProperty("tb003")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String itemSpc;
private String itemCode;
@ApiModelProperty("工艺")
@JsonProperty("tb006")
......
......@@ -26,7 +26,7 @@ public class ProWorkorderErpDto
@ApiModelProperty("工单单别")
@JsonProperty("ta001")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String orderSource;
private String workorderType;
@ApiModelProperty("工单单号")
@JsonProperty("ta002")
......
......@@ -22,6 +22,19 @@ public class ProWorkorderErpQuery extends ErpPageParams
@ApiModelProperty("审核码")
@JsonProperty("ta013")
private String verifyStatus;
@ApiModelProperty("工单单别")
@JsonProperty("ta001")
private String orderSource;
@JsonProperty("neUdf07")
@ApiModelProperty("同步标识状态-不等于")
private String neSyncMark;
@ApiModelProperty("工单单号")
@JsonProperty("ta002")
private String workorderCode;
@JsonFormat(pattern = "yyyyMMddHHmmssSSS")
@ApiModelProperty("创建日期")
private Date gtEqCreateDate;
......
package com.ximai.mes.remote.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* 工单对象 ProWorkorderErpQuery
*
* @date 2024-10-18
*/
@Data
public class ProWorkorderSyncMarkUpdate
{
@ApiModelProperty("工单单别")
@JsonProperty("ta001")
private String workorderType;
@ApiModelProperty("工单单号")
@JsonProperty("ta002")
private String workorderCode;
@ApiModelProperty("同步标识")
@JsonProperty("udf07")
private String syncMark="Y";
}
......@@ -29,6 +29,9 @@
<result property="createBy" column="create_by"/>
<result property="updateTime" column="update_time"/>
<result property="updateBy" column="update_by"/>
<result property="opName" column="op_name"/>
<result property="erpCreateTime" column="erp_create_time"/>
<result property="erpUpdateTime" column="erp_update_time"/>
</resultMap>
<sql id="selectProWorkOrderBomVo">
......@@ -104,6 +107,10 @@
<if test="createBy != null">create_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="opName != null">op_name,</if>
<if test="orderSource != null">order_source,</if>
<if test="erpCreateTime !=null">erp_create_time,</if>
<if test="erpUpdateTime !=null">erp_update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="workorderId != null">#{workorderId},</if>
......@@ -129,6 +136,10 @@
<if test="createBy != null">#{createBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="opName != null">#{opName},</if>
<if test="orderSource != null">#{orderSource},</if>
<if test="erpCreateTime != null">#{erpCreateTime},</if>
<if test="erpUpdateTime != null">#{erpUpdateTime},</if>
</trim>
</insert>
......@@ -157,6 +168,9 @@
<if test="createBy != null">create_by = #{createBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="opName != null">op_name = #{opName},</if>
<if test="orderSource != null">order_source = #{orderSource},</if>
<if test="erpUpdateTime != null">erp_update_time = #{erpUpdateTime},</if>
</trim>
where bom_item_id = #{bomItemId}
</update>
......
......@@ -532,10 +532,10 @@ public class SysUserServiceImpl implements ISysUserService {
@Override
public void importUser(InputStream in, Boolean isUpdateSupport) {
ExcelReader.read(in, SysUserExcelImport.class, this::importUser);
ExcelReader.read(in, SysUserExcelImport.class, this::importUserImpl, isUpdateSupport);
}
private void importUser(SysUserExcelImport userExcelImport){
private void importUserImpl(SysUserExcelImport userExcelImport, Boolean isUpdateSupport){
SysUser user = BeanUtil.copyProperties(userExcelImport, SysUser.class);
String password = configService.selectConfigByKey("sys.user.initPassword");
// 验证是否存在这个用户
......@@ -544,9 +544,11 @@ public class SysUserServiceImpl implements ISysUserService {
BeanValidators.validateWithException(validator, user);
user.setPassword(SecurityUtils.encryptPassword(password));
user.setCreateBy(SecurityUtils.getUsername());
user.setStatus("0");
this.insertUser(user);
} else if (userExcelImport.getUpdateSupport()) {
} else if (isUpdateSupport) {
BeanValidators.validateWithException(validator, user);
user.setUserId(u.getUserId());
user.setUpdateBy(SecurityUtils.getUsername());
this.updateUser(user);
}
......
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