停开机记录优化,在籍人数记录在MES_SHIFT_PROD_CENTER_PM中

tags/yfai-pcn-ext-v1.0
yxw 1 year ago
parent 1867e2dc1b
commit 45da3d6e81

@ -64,7 +64,7 @@ public interface IShiftProdCenterRecordService {
* @return
*/
@ApiOperation(value = "编辑停开机记录", notes = "编辑停开机记录")
MesShiftProdCenterRecord updateShiftProdCenterRecord(MesShiftProdCenterRecord record);
void updateShiftProdCenterRecord(ShiftProdCenterRecordModel record);
/**
* id

@ -159,7 +159,7 @@ public class ShiftProdCenterRecordController extends MesPcnBaseController {
@PostMapping(value = "/shift-prod-center-record/update")
@ApiOperation(value = "编辑停开机记录")
public ResultBean updateShiftProdCenterRecord(MesShiftProdCenterRecord record) {
public ResultBean updateShiftProdCenterRecord(ShiftProdCenterRecordModel record) {
try {
ValidatorBean.beginValid(record)
.notNull(MesPcnExtConstWords.ID, record.getId())

@ -6,10 +6,7 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.*;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.ShiftProdCenterModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.ShiftProdCenterRecordModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.ShiftProdModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.MesShiftProdCenterRecordRepository;
import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.MesShiftProdCenterRepository;
import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.MesShiftProdRepository;
import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.MesWorkCenterExtRepository;
import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.*;
import cn.estsh.i3plus.ext.mes.pcn.pojo.sqlpack.MesPcnExtHqlPack;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.ConvertBeanExt;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
@ -60,6 +57,9 @@ public class ShiftProdCenterRecordService implements IShiftProdCenterRecordServi
private MesShiftProdCenterRecordRepository shiftProdCenterRecordRepository;
@Autowired
private MesShiftProdCenterPmRepository shiftProdCenterPmRepository;
@Autowired
private MesShiftProdCenterRepository shiftProdCenterRepository;
@Autowired
@ -104,8 +104,11 @@ public class ShiftProdCenterRecordService implements IShiftProdCenterRecordServi
}
List<MesShiftProdCenterRecord> shiftProdCenterRecordList = getShiftProdCenterRecordList(
shiftExt.getOrganizeCode(), workCenter.getWorkTime(), workCenter.getWorkCenterCode(), workCenter.getShiftCode());
MesShiftProdCenterPm mesShiftProdCenterPm = getMesShiftProdCenterPm(shiftExt.getOrganizeCode(), workCenter.getWorkCenterCode(), workCenter.getShiftCode(), workCenter.getWorkTime());
if (!CollectionUtils.isEmpty(shiftProdCenterRecordList)) {
shiftProdCenterModel.setShiftProdCenterRecordList(packShiftProdCenterRecordList(shiftProdCenterRecordList, shiftExtDb));
shiftProdCenterModel.setShiftProdCenterRecordList(packShiftProdCenterRecordList(shiftProdCenterRecordList, mesShiftProdCenterPm, shiftExtDb));
ShiftProdCenterRecordModel recordTimeDb = shiftProdCenterModel.getShiftProdCenterRecordList().stream().filter(o -> o.getProdType() == MesPcnExtEnumUtil.SHIFT_PROD_TYPE.START_OR_END_SHIFT_TIME.getValue()).findFirst().get();
shiftProdCenterModel.setAtHomeNum(recordTimeDb == null ? 0 : recordTimeDb.getAtHomeNum());
}
@ -113,7 +116,7 @@ public class ShiftProdCenterRecordService implements IShiftProdCenterRecordServi
return shiftProdCenterModel;
}
private List<ShiftProdCenterRecordModel> packShiftProdCenterRecordList(List<MesShiftProdCenterRecord> shiftProdCenterRecordList, MesShiftExt shift) {
private List<ShiftProdCenterRecordModel> packShiftProdCenterRecordList(List<MesShiftProdCenterRecord> shiftProdCenterRecordList, MesShiftProdCenterPm mesShiftProdCenterPm, MesShiftExt shift) {
List<ShiftProdCenterRecordModel> modelList = new ArrayList<>();
for (MesShiftProdCenterRecord shiftProdCenterRecord : shiftProdCenterRecordList) {
if (null == shiftProdCenterRecord) {
@ -133,6 +136,25 @@ public class ShiftProdCenterRecordService implements IShiftProdCenterRecordServi
}
modelList.add(model);
}
if (mesShiftProdCenterPm != null) {
ShiftProdCenterRecordModel model = new ShiftProdCenterRecordModel();
BeanUtils.copyProperties(mesShiftProdCenterPm, model);
//model.setProdCategoryName(StringUtils.isEmpty(mesShiftProdCenterPm.getProdCategory()) ?
// null : MesPcnExtEnumUtil.SHIFT_PROD_CATEGORY.valueOfDescription(mesShiftProdCenterPm.getProdCategory()));
model.setProdType(MesPcnExtEnumUtil.SHIFT_PROD_TYPE.START_OR_END_SHIFT_TIME.getValue());
model.setProdTypeName(MesPcnExtEnumUtil.SHIFT_PROD_TYPE.START_OR_END_SHIFT_TIME.getDescription());
//model.setIsProdTimeName(StringUtils.isEmpty(mesShiftProdCenterPm.getIsProdTime()) ?
// null : MesPcnExtEnumUtil.SHIFT_PROD_IS_PROD_TIME.valueOfDescription(mesShiftProdCenterPm.getIsProdTime()));
if (null != shift) {
model.setShiftStartTime(shift.getStartTime());
model.setShiftEndTime(shift.getEndTime());
}
modelList.add(model);
}
return modelList;
}
@ -170,13 +192,9 @@ public class ShiftProdCenterRecordService implements IShiftProdCenterRecordServi
.build();
}
MesShiftProdCenterRecord shiftProdCenterRecordDb = shiftProdCenterRecordRepository.getByProperty(
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID,
MesPcnExtConstWords.WORK_CENTER_CODE, MesPcnExtConstWords.SHIFT_CODE, MesPcnExtConstWords.WORK_TIME, MesPcnExtConstWords.PROD_TYPE},
new Object[]{workCenterDb.getOrganizeCode(), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(),
workCenterDb.getWorkCenterCode(), workCenterDb.getShiftCode(), workCenterDb.getWorkTime(), MesPcnExtEnumUtil.SHIFT_PROD_TYPE.START_OR_END_SHIFT_TIME.getValue()});
MesShiftProdCenterPm shiftProdCenterPmDb = getMesShiftProdCenterPm(centerRecordModel.getOrganizeCode(), workCenterDb.getWorkCenterCode(), workCenterDb.getShiftCode(), workCenterDb.getWorkTime());
if (shiftProdCenterRecordDb == null) {
if (shiftProdCenterPmDb == null) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
@ -191,11 +209,11 @@ public class ShiftProdCenterRecordService implements IShiftProdCenterRecordServi
new ConvertBeanExt(workCenterDb).convertBean(workCenterDb);
workCenterExtRepository.save(workCenterDb);
shiftProdCenterRecordDb.setEndTime(centerRecordModel.getEndTime());
shiftProdCenterRecordDb.setPartCutCount(centerRecordModel.getPartCutCount());
shiftProdCenterRecordDb.setOvertimeNum(centerRecordModel.getOvertimeNum());
ConvertBean.serviceModelUpdate(shiftProdCenterRecordDb, centerRecordModel.getModifyUser());
shiftProdCenterRecordRepository.save(shiftProdCenterRecordDb);
shiftProdCenterPmDb.setEndTime(centerRecordModel.getEndTime());
shiftProdCenterPmDb.setPartCutCount(centerRecordModel.getPartCutCount());
shiftProdCenterPmDb.setOvertimeNum(centerRecordModel.getOvertimeNum());
ConvertBean.serviceModelUpdate(shiftProdCenterPmDb, centerRecordModel.getModifyUser());
shiftProdCenterPmRepository.save(shiftProdCenterPmDb);
}
@Override
@ -230,12 +248,8 @@ public class ShiftProdCenterRecordService implements IShiftProdCenterRecordServi
List<MesShiftProdCenterRecord> shiftProdCenterRecordList = getShiftProdCenterRecordList(
centerRecordModel.getOrganizeCode(), workTime, centerRecordModel.getWorkCenterCode(), shiftDb.getShiftCode());
MesShiftProdCenterRecord startOrEndShiftRecord = new MesShiftProdCenterRecord();
if (CollectionUtils.isEmpty(shiftProdCenterRecordList)) {
ConvertBean.serviceModelInitialize(startOrEndShiftRecord, centerRecordModel.getModifyUser());
List<MesShiftProdCenter> shiftProdCenterList = getShiftProdCenterList(centerRecordModel.getOrganizeCode(), centerRecordModel.getWorkCenterCode(), shiftDb.getShiftCode());
if (!CollectionUtils.isEmpty(shiftProdCenterList)) {
//获取班次作业项目表根据作业内容代码分组的数据
@ -274,36 +288,45 @@ public class ShiftProdCenterRecordService implements IShiftProdCenterRecordServi
shiftProdCenterRecordRepository.insert(record);
}
}
}
saveProdCenterPm(centerRecordModel, shiftDb, workTime);
}
private void saveProdCenterPm(ShiftProdCenterRecordModel centerRecordModel, MesShift shiftDb, String workTime) {
MesShiftProdCenterPm shiftProdCenterPm = getMesShiftProdCenterPm(centerRecordModel.getOrganizeCode(), centerRecordModel.getWorkCenterCode(), centerRecordModel.getShiftCode(), workTime);
if (shiftProdCenterPm == null) {
shiftProdCenterPm = new MesShiftProdCenterPm();
ConvertBean.serviceModelInitialize(shiftProdCenterPm, centerRecordModel.getModifyUser());
} else {
for (MesShiftProdCenterRecord shiftProdCenterRecord : shiftProdCenterRecordList) {
if (shiftProdCenterRecord.getProdType() == MesPcnExtEnumUtil.SHIFT_PROD_TYPE.START_OR_END_SHIFT_TIME.getValue()) {
startOrEndShiftRecord = shiftProdCenterRecord;
ConvertBean.serviceModelUpdate(startOrEndShiftRecord, centerRecordModel.getModifyUser());
}
}
ConvertBean.serviceModelUpdate(shiftProdCenterPm, centerRecordModel.getModifyUser());
}
//if (startOrEndShiftRecord == null) {
// startOrEndShiftRecord = new MesShiftProdCenterRecord();
// ConvertBean.serviceModelInitialize(startOrEndShiftRecord, centerRecordModel.getModifyUser());
//}
startOrEndShiftRecord.setWorkCenterCode(centerRecordModel.getWorkCenterCode());
startOrEndShiftRecord.setStartTime(centerRecordModel.getStartTime());
startOrEndShiftRecord.setShiftCode(shiftDb.getShiftCode());
startOrEndShiftRecord.setShiftName(shiftDb.getShiftName());
startOrEndShiftRecord.setWorkTime(workTime);
startOrEndShiftRecord.setAtHomeNum(centerRecordModel.getAtHomeNum());
startOrEndShiftRecord.setAbsenteeismNum(centerRecordModel.getAbsenteeismNum());
startOrEndShiftRecord.setOvertimeNum(centerRecordModel.getOvertimeNum());
startOrEndShiftRecord.setNewWorkNum(centerRecordModel.getNewWorkNum());
startOrEndShiftRecord.setQuitWorkNum(centerRecordModel.getQuitWorkNum());
startOrEndShiftRecord.setWorkerQty(centerRecordModel.getWorkerQty());
startOrEndShiftRecord.setProdType(MesPcnExtEnumUtil.SHIFT_PROD_TYPE.START_OR_END_SHIFT_TIME.getValue());
startOrEndShiftRecord.setOrganizeCode(centerRecordModel.getOrganizeCode());
shiftProdCenterRecordRepository.save(startOrEndShiftRecord);
shiftProdCenterPm.setWorkCenterCode(centerRecordModel.getWorkCenterCode());
shiftProdCenterPm.setStartTime(centerRecordModel.getStartTime());
shiftProdCenterPm.setShiftCode(shiftDb.getShiftCode());
shiftProdCenterPm.setShiftName(shiftDb.getShiftName());
shiftProdCenterPm.setWorkTime(workTime);
shiftProdCenterPm.setAtHomeNum(centerRecordModel.getAtHomeNum());
shiftProdCenterPm.setAbsenteeismNum(centerRecordModel.getAbsenteeismNum());
shiftProdCenterPm.setOvertimeNum(centerRecordModel.getOvertimeNum());
shiftProdCenterPm.setNewWorkNum(centerRecordModel.getNewWorkNum());
shiftProdCenterPm.setQuitWorkNum(centerRecordModel.getQuitWorkNum());
shiftProdCenterPm.setWorkerQty(centerRecordModel.getWorkerQty());
shiftProdCenterPm.setOrganizeCode(centerRecordModel.getOrganizeCode());
shiftProdCenterPmRepository.save(shiftProdCenterPm);
}
private MesShiftProdCenterPm getMesShiftProdCenterPm(String organizeCode, String workCenterCode, String shiftCode, String workTime) {
return shiftProdCenterPmRepository.getByProperty(
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID,
MesPcnExtConstWords.WORK_CENTER_CODE, MesPcnExtConstWords.SHIFT_CODE, MesPcnExtConstWords.WORK_TIME},
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(),
workCenterCode, shiftCode, workTime});
}
private List<MesShiftProdCenter> getShiftProdCenterList(String organizeCode, String workCenterCode, String shiftCode) {
@ -419,7 +442,9 @@ public class ShiftProdCenterRecordService implements IShiftProdCenterRecordServi
@Override
public MesShiftProdCenterRecord insertShiftProdCenterRecord(MesShiftProdCenterRecord record) {
//校验[开始时间是否小于结束时间]
checkTimeIsValid(record);
ShiftProdCenterRecordModel model = new ShiftProdCenterRecordModel();
BeanUtils.copyProperties(record, model);
checkTimeIsValid(model);
//获取当前选择的班次信息
/* MesShiftExt shiftExt = getShiftByCenterAndShiftCode(record);
@ -434,7 +459,7 @@ public class ShiftProdCenterRecordService implements IShiftProdCenterRecordServi
return shiftProdCenterRecordRepository.insert(record);
}
private void checkTimeIsValid(MesShiftProdCenterRecord record) {
private void checkTimeIsValid(ShiftProdCenterRecordModel record) {
if (TimeTool.stringParseToDate(record.getStartTime()).compareTo(TimeTool.stringParseToDate(record.getEndTime())) >= 0) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
@ -556,19 +581,46 @@ public class ShiftProdCenterRecordService implements IShiftProdCenterRecordServi
}
@Override
public MesShiftProdCenterRecord updateShiftProdCenterRecord(MesShiftProdCenterRecord record) {
MesShiftProdCenterRecord shiftProdCenterRecordDb = getShiftProdCenterRecordById(record.getId());
if (CommonEnumUtil.IS_VAILD.INVAILD.getValue() == shiftProdCenterRecordDb.getIsValid()) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
.setErrorDetail("ID[%s]记录已被禁用,不能修改", record.getId())
.build();
}
public void updateShiftProdCenterRecord(ShiftProdCenterRecordModel record) {
//校验[开始时间是否小于结束时间]
checkTimeIsValid(record);
if (MesPcnExtEnumUtil.SHIFT_PROD_TYPE.START_OR_END_SHIFT_TIME.getValue() == record.getProdType()) {
MesShiftProdCenterPm shiftProdCenterPmDb = shiftProdCenterPmRepository.getById(record.getId());
if (CommonEnumUtil.IS_VAILD.INVAILD.getValue() == shiftProdCenterPmDb.getIsValid()) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
.setErrorDetail("ID[%s]记录已被禁用,不能修改", record.getId())
.build();
}
shiftProdCenterPmDb.setStartTime(record.getStartTime());
shiftProdCenterPmDb.setEndTime(record.getEndTime());
shiftProdCenterPmDb.setWorkerQty(record.getWorkerQty());
shiftProdCenterPmDb.setMemo(record.getMemo());
ConvertBean.serviceModelUpdate(shiftProdCenterPmDb, record.getModifyUser());
shiftProdCenterPmRepository.save(shiftProdCenterPmDb);
} else {
MesShiftProdCenterRecord shiftProdCenterRecordDb = getShiftProdCenterRecordById(record.getId());
if (CommonEnumUtil.IS_VAILD.INVAILD.getValue() == shiftProdCenterRecordDb.getIsValid()) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
.setErrorDetail("ID[%s]记录已被禁用,不能修改", record.getId())
.build();
}
shiftProdCenterRecordDb.setStartTime(record.getStartTime());
shiftProdCenterRecordDb.setEndTime(record.getEndTime());
shiftProdCenterRecordDb.setWorkerQty(record.getWorkerQty());
shiftProdCenterRecordDb.setMemo(record.getMemo());
ConvertBean.serviceModelUpdate(shiftProdCenterRecordDb, record.getModifyUser());
shiftProdCenterRecordRepository.save(shiftProdCenterRecordDb);
}
//获取当前选择的班次信息
// MesShiftExt shiftExt = getShiftByCenterAndShiftCode(record);
//
@ -581,42 +633,35 @@ public class ShiftProdCenterRecordService implements IShiftProdCenterRecordServi
// checkTimeIsOverlap(record);
// }
shiftProdCenterRecordDb.setStartTime(record.getStartTime());
shiftProdCenterRecordDb.setEndTime(record.getEndTime());
shiftProdCenterRecordDb.setWorkerQty(record.getWorkerQty());
shiftProdCenterRecordDb.setMemo(record.getMemo());
ConvertBean.serviceModelUpdate(shiftProdCenterRecordDb, record.getModifyUser());
return shiftProdCenterRecordRepository.save(shiftProdCenterRecordDb);
}
private MesShiftProdCenterRecord getShiftProdCenterRecordById(Long id) {
MesShiftProdCenterRecord shiftProdCenterRecordDb = shiftProdCenterRecordRepository.getById(id);
if (null == shiftProdCenterRecordDb || CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == shiftProdCenterRecordDb.getIsDeleted()) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
.setErrorDetail("ID[%s]记录不存在", id)
.build();
}
return shiftProdCenterRecordDb;
return shiftProdCenterRecordRepository.getById(id);
}
@Override
public int deleteShiftProdCenterRecodeById(Long id, String modifyUser) {
MesShiftProdCenterRecord shiftProdCenterRecordById = getShiftProdCenterRecordById(id);
MesShiftProdCenterRecord shiftProdCenterRecordById = shiftProdCenterRecordRepository.getById(id);
if (shiftProdCenterRecordById.getProdType() == MesPcnExtEnumUtil.SHIFT_PROD_TYPE.START_OR_END_SHIFT_TIME.getValue()) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
.setErrorDetail("[%s]类型停开机记录不能删除", MesPcnExtEnumUtil.SHIFT_PROD_TYPE.valueOfDescription(shiftProdCenterRecordById.getProdType()))
.build();
if (shiftProdCenterRecordById == null) {
MesShiftProdCenterPm shiftProdCenterPmDb = shiftProdCenterPmRepository.getById(id);
if (shiftProdCenterPmDb != null) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
.setErrorDetail("[%s]类型停开机记录不能删除", MesPcnExtEnumUtil.SHIFT_PROD_TYPE.START_OR_END_SHIFT_TIME.getDescription())
.build();
}
} else {
shiftProdCenterRecordById.setIsDeleted(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
ConvertBean.serviceModelUpdate(shiftProdCenterRecordById, modifyUser);
shiftProdCenterRecordRepository.save(shiftProdCenterRecordById);
}
shiftProdCenterRecordById.setIsDeleted(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
ConvertBean.serviceModelUpdate(shiftProdCenterRecordById, modifyUser);
shiftProdCenterRecordRepository.save(shiftProdCenterRecordById);
return 1;
}
}

Loading…
Cancel
Save