Edc2MyspcServiceImpl.java
package com.mycim.server.edcmyspc.service;
import com.alipay.sofa.runtime.api.annotation.SofaService;
import com.alipay.sofa.runtime.api.annotation.SofaServiceBinding;
import com.fa.sesa.exception.Assert;
import com.fa.sesa.exception.Errors;
import com.fa.sesa.threadlocal.LocalContext;
import com.fa.sesa.threadlocal.LocalContextNames;
import com.mycim.server.edcchart.manager.EquipmentChartManager;
import com.mycim.server.edcmyspc.manager.Edc2MyspcManager;
import com.mycim.server.security.manager.UserManager;
import com.mycim.server.system.manager.FacilityManager;
import com.mycim.valueobject.edcspc.dto.SpcHoldEquipmentRequestDto;
import com.mycim.valueobject.edcspc.dto.UploadChartInfoDto;
import com.mycim.valueobject.security.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @author Luopeng.Wang
* @version 6.0.0
* @date 2019/11/22
**/
@Service
@SofaService(interfaceType = Edc2MyspcService.class, bindings = {@SofaServiceBinding(bindingType = "bolt")})
public class Edc2MyspcServiceImpl implements Edc2MyspcService {
@Autowired
private Edc2MyspcManager edc2MyspcManager;
@Autowired
private FacilityManager facilityManager;
@Autowired
private UserManager userManager;
@Autowired
private EquipmentChartManager equipmentChartManager;
@Override
public void holdEquipmentForMyspc(SpcHoldEquipmentRequestDto spcHoldEquipmentRequestDto) {
initLocalContextForMyspc();
edc2MyspcManager.holdEquipmentForMyspc(spcHoldEquipmentRequestDto);
}
@Override
public void uploadChartInfo(UploadChartInfoDto uploadChartInfoDto) {
initLocalContextForMyspc();
equipmentChartManager.uploadChartInfos(uploadChartInfoDto);
}
@Override
public void deleteChartInfo(UploadChartInfoDto uploadChartInfoDto) {
initLocalContextForMyspc();
equipmentChartManager.deleteChartInfo(uploadChartInfoDto);
}
private void initLocalContextForMyspc() {
long facilityRrn = LocalContext.getFacilityRrn();
if (facilityRrn <= 0) {
String facilityId = (String) LocalContext.get(LocalContextNames.FACILITY_ID_KEY);
facilityRrn = facilityManager.getFacilityRrn(facilityId);
Assert.state(facilityRrn > 0, Errors.create().content("Facility does not exist.").build());
LocalContext.put(LocalContextNames.FACILITY_RRN_KEY, String.valueOf(facilityRrn));
}
long userRrn = LocalContext.getUserRrn();
if (userRrn <= 0) {
User user = userManager.getUser(LocalContext.getUserId());
Assert.isFalse(user == null || user.getInstanceRrn() <= 0,
Errors.create().content("User does not exist.").build());
userRrn = user.getInstanceRrn();
LocalContext.put(LocalContextNames.USER_RRN_KEY, String.valueOf(userRrn));
}
}
}