package com.goafanti.cognizance.service.impl; import java.math.BigDecimal; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.goafanti.cognizance.bo.CognizanceBo; import com.goafanti.cognizance.bo.CognizanceCatagoryBo; import com.goafanti.cognizance.bo.CognizanceDetailBo; import com.goafanti.cognizance.bo.CognizanceManageCostBo; import com.goafanti.cognizance.bo.CognizanceOrgInfoBo; import com.goafanti.cognizance.bo.CognizanceResearchCostBo; import com.goafanti.cognizance.bo.CultivationListBo; import com.goafanti.cognizance.service.OrgCognizanceService; import com.goafanti.common.dao.OrgCognizanceLogMapper; import com.goafanti.common.dao.OrgCognizanceMapper; import com.goafanti.common.dao.OrganizationIdentityMapper; import com.goafanti.common.model.Admin; import com.goafanti.common.model.OrgCognizance; import com.goafanti.common.model.OrgCognizanceLog; import com.goafanti.common.model.OrganizationIdentity; import com.goafanti.core.mybatis.BaseMybatisDao; import com.goafanti.core.mybatis.page.Pagination; import com.goafanti.core.shiro.token.TokenManager; @Service public class OrgCognizanceServiceImpl extends BaseMybatisDao implements OrgCognizanceService { @Autowired private OrgCognizanceMapper orgCognizanceMapper; @Autowired private OrgCognizanceLogMapper orgCognizanceLogMapper; @Autowired private OrganizationIdentityMapper organizationIdentityMapper; @Override public OrgCognizance insert(OrgCognizance c) { orgCognizanceMapper.insert(c); return c; } @SuppressWarnings("unchecked") @Override public Pagination listCognizance(String uid, String unitName, String locationProvince, Integer pageNo, Integer pageSize) { Map params = new HashMap<>(); if (!StringUtils.isBlank(unitName)){ params.put("unitName", unitName); } if (!StringUtils.isBlank(uid)){ params.put("uid", uid); } if (!StringUtils.isBlank(locationProvince)){ params.put("locationProvince", locationProvince); } if (pageNo == null || pageNo < 0) { pageNo = 1; } if (pageSize == null || pageSize < 0) { pageSize = 10; } return (Pagination) findPage("findCognizanceBoByPage","findCognizanceBoCount", params, pageNo, pageSize); } @Override public CognizanceDetailBo selectCognizanceDetailBo(String uid, String cid, Integer year){ CognizanceDetailBo cog = new CognizanceDetailBo(); CognizanceOrgInfoBo orgInfo = orgCognizanceMapper.selectCognizanceOrgInfoBoByUidAndCid(uid, cid); if (null != orgInfo){ cog.setUid(null == orgInfo.getUid() ? "" : orgInfo.getUid()); cog.setCid(null == orgInfo.getCid() ? "" : orgInfo.getCid()); cog.setUnitName(null == orgInfo.getUnitName() ? "" : orgInfo.getUnitName()); cog.setOrgCode(null == orgInfo.getOrgCode() ? "" : orgInfo.getOrgCode()); cog.setPostalAddress(null == orgInfo.getPostalAddress() ? "" : orgInfo.getPostalAddress()); cog.setContacts(null == orgInfo.getContacts() ? "" : orgInfo.getContacts().toString());//联系人 cog.setTechnicalField1(null == orgInfo.getTechnicalField1() ? 0 : orgInfo.getTechnicalField1()); cog.setTechnicalField2(null == orgInfo.getTechnicalField2() ? 0 : orgInfo.getTechnicalField2()); cog.setTechnicalField3(null == orgInfo.getTechnicalField3() ? 0 : orgInfo.getTechnicalField3()); cog.setBasicResearchCost( null == orgInfo.getBasicResearchCost() ? new BigDecimal(0) : orgInfo.getBasicResearchCost()); cog.setAccident(null == orgInfo.getAccient() ? 0 : orgInfo.getAccient()); } CognizanceResearchCostBo researchCost = orgCognizanceMapper.selectCognizanceResearchCostBoByUidAndYear(year, uid); if (null != researchCost) { cog.setResearchCost( null == researchCost.getResearchCost() ? new BigDecimal(0) : researchCost.getResearchCost()); cog.setTerritory(null == researchCost.getTerritory() ? new BigDecimal(0) : researchCost.getTerritory()); } CognizanceManageCostBo manageCost = orgCognizanceMapper.selectCognizanceManageCostBoByUidAndYear(year, uid); if (null != manageCost) { cog.setNetAsset1(null == manageCost.getNetAsset1() ? new BigDecimal(0) : manageCost.getNetAsset1()); cog.setNetAsset2(null == manageCost.getNetAsset2() ? new BigDecimal(0) : manageCost.getNetAsset2()); cog.setNetAsset3(null == manageCost.getNetAsset3() ? new BigDecimal(0) : manageCost.getNetAsset3()); cog.setSalesRevenue1(null == manageCost.getSalesRevenue1() ? new BigDecimal(0) : manageCost.getSalesRevenue1()); cog.setSalesRevenue2(null == manageCost.getSalesRevenue2() ? new BigDecimal(0) : manageCost.getSalesRevenue2()); cog.setSalesRevenue3(null == manageCost.getSalesRevenue3() ? new BigDecimal(0) : manageCost.getSalesRevenue3()); cog.setGrossProfit1(null == manageCost.getGrossProfit1() ? new BigDecimal(0) : manageCost.getGrossProfit1()); cog.setGrossProfit2(null == manageCost.getGrossProfit2() ? new BigDecimal(0) : manageCost.getGrossProfit2()); cog.setGrossProfit3(null == manageCost.getGrossProfit3() ? new BigDecimal(0) : manageCost.getGrossProfit3()); } CognizanceCatagoryBo catagory = orgCognizanceMapper.selectCognizanceCatagoryBoByUidAndYear(year, uid); if (null != catagory){ cog.setFirstCatagory(null == catagory.getFirstCatagory() ? 0 : catagory.getFirstCatagory()); cog.setSecondCatagory(null == catagory.getSecondCatagory() ? 0 : catagory.getSecondCatagory()); cog.setFirmTotal(null == catagory.getFirmTotal() ? 0 : catagory.getFirmTotal()); cog.setTechTotal(null == catagory.getTechTotal() ? 0 : catagory.getTechTotal()); cog.setTotalRevenue(null == catagory.getTotalRevenue() ? new BigDecimal(0) : catagory.getTotalRevenue()); } BigDecimal revenue = orgCognizanceMapper.selectLastYearRevenueByUidAndYear(year, uid); cog.setLastYearRevenue(null == revenue ? new BigDecimal(0) : revenue); return cog; } @Override public CognizanceOrgInfoBo selectCognizanceOrgInfoBoByUidAndCid(String uid, String cid) { return orgCognizanceMapper.selectCognizanceOrgInfoBoByUidAndCid(uid, cid); } @Override public CognizanceResearchCostBo selectCognizanceResearchCostBoByUidAndYear(Integer year, String uid) { return orgCognizanceMapper.selectCognizanceResearchCostBoByUidAndYear(year, uid); } @Override public CognizanceManageCostBo selectCognizanceManageCostBoByUidAndYear(Integer year, String uid) { return orgCognizanceMapper.selectCognizanceManageCostBoByUidAndYear(year, uid); } @Override public CognizanceCatagoryBo selectCognizanceCatagoryBoByUidAndYear(Integer year, String uid) { return orgCognizanceMapper.selectCognizanceCatagoryBoByUidAndYear(year, uid); } @Override public BigDecimal selectLastYearRevenueByUidAndYear(Integer year, String uid) { return orgCognizanceMapper.selectLastYearRevenueByUidAndYear(year, uid); } @Override public int updateByPrimaryKeySelective(OrgCognizance cog) { return orgCognizanceMapper.updateByPrimaryKeySelective(cog); } @Override public OrgCognizance selectCognizanceByUidAndYear(Integer year, String uid) { return orgCognizanceMapper.selectCognizanceByUidAndYear(year, uid); } @Override public int deleteByPrimaryKey(List id) { return orgCognizanceMapper.batchDeleteByPrimaryKey(id); } @Override public void updateCognizance(OrgCognizance cog, OrgCognizanceLog log, Date recordTime, String aid) { if (null != log.getState() && null != recordTime && null != cog.getUid() ) { log.setRecordTime(recordTime); cog.setState(log.getState()); switch (log.getState()) { case 1: cog.setCreateTime(recordTime); break; case 2: cog.setAcceptDate(recordTime); break; case 5: cog.setIssuingDate(recordTime); OrganizationIdentity o = organizationIdentityMapper.selectOrgIdentityByUserId(cog.getUid()); o.setCertificateNumber(null == cog.getCertificateNumber() ? "" : cog.getCertificateNumber()); o.setIssuingDate(recordTime); o.setConsultant(null == cog.getConsultant() ? "" : cog.getConsultant()); o.setCogContacts(null == cog.getContacts() ? null : cog.getContacts()); organizationIdentityMapper.updateByPrimaryKeySelective(o); break; } log.setId(UUID.randomUUID().toString()); log.setCid(cog.getId()); log.setOperator(aid); orgCognizanceLogMapper.insert(log); } orgCognizanceMapper.updateByPrimaryKeySelective(cog); } @Override public void insertCognizance(Integer contacts, String comment, Integer year, Integer state, String aid, String uid) { OrgCognizance c = new OrgCognizance(); c.setId(UUID.randomUUID().toString()); c.setUid(uid); c.setContacts(contacts); c.setComment(comment); c.setDeletedSign(0); c.setYear(year); c.setState(state); Calendar now = Calendar.getInstance(); now.set(Calendar.MILLISECOND, 0); c.setRecordTime(now.getTime()); orgCognizanceMapper.insert(c); OrgCognizanceLog log = new OrgCognizanceLog(); log.setId(UUID.randomUUID().toString()); log.setCid(c.getId()); log.setRecordTime(c.getCreateTime()); log.setState(state); log.setComment(comment); log.setPrincipal(aid); if (TokenManager.getToken() instanceof Admin) { log.setOperator(TokenManager.getAdminId()); } orgCognizanceLogMapper.insert(log); } @SuppressWarnings("unchecked") @Override public Pagination listCultivation(String uid, String province, String unitName, Integer pageNo, Integer pageSize) { Map params = new HashMap<>(); if (!StringUtils.isBlank(unitName)){ params.put("unitName", unitName); } if (!StringUtils.isBlank(uid)){ params.put("uid", uid); } if (!StringUtils.isBlank(province)){ params.put("province", province); } if (pageNo == null || pageNo < 0) { pageNo = 1; } if (pageSize == null || pageSize < 0) { pageSize = 10; } return(Pagination) findPage("findCultivationListByPage", "findCultivationCount", params, pageNo, pageSize); } }